#making-mods-general

1 messages · Page 17 of 1

wraith fox
#

i might start small, just adding some birds

#

and integrating them into the orthinologists guild mod

tiny zealot
#

starting small is highly recommended. adding an NPC is a big job (it's not much more difficult, but it takes a lot of effort)

wraith fox
#

ohh ok

#

so i guess making a few animals shouldnt be hard

#

theres 2 other submods doing that exact thing so ill just look and see what they have done

tiny zealot
#

another excellent strategy

final arch
#

this actually works it seems 😄

#

__instance is FishingRod despite it being WateringCan as static type

wraith fox
royal nimbus
#

so having an issue with two modded things not showing up in game. first, the island farm obelisk which is in buildings. none of my other building mods seemed to have this issue. so idk why its not working.

then i have the greenhouse interior not working either. its in maps so maybe i might need some kind of json to go with it but i dont think so.

#

maybe ive made a tiny typo but i looked over it a couple times and i dont see anything wrong with it

drowsy pewter
#

do you get any errors?

#

can you please send your whole file?

#

you've ruled out other mods interfering?

#

etc

royal nimbus
#

yeah and im getting an error but its unrelated and only just noticed it. u want my whole content json??

drowsy pewter
#

yes.

royal nimbus
#

ok

drowsy pewter
#

and send your log too (you might think the error is unrelated, but someone else may think it is related, i have no way of knowing without more info)

royal nimbus
#

its big

drowsy pewter
#

thats what the json sharing website is for

ocean sailBOT
#

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

royal nimbus
drowsy pewter
#

i dont see a Farm Obelisk file in my Buildings folder

#

where did that come from?

royal nimbus
#

ohhh.. maybe its just missplaced then? i will double check

#

ah yes thats the case

drowsy pewter
#

greenhouse interior is not used

tiny zealot
royal nimbus
#

i just need to figure out where it's suppose to go

#

wow ty for checking

#

ahh

#

its suppose to go in maps

drowsy pewter
#

greenhouseinterior consists of old unused assets, i think the actual tiles you want are somewhere on the town indoors tilesheet or something

#

not sure

royal nimbus
#

oohhhh

#

k

#

weird tho

drowsy pewter
#

i mean yeah just look at it

#

it looks totally different from the game

royal nimbus
#

its in pieces so i didnt rly notice

#

alrighty well thats figured out then. ty

floral portal
#

Hello. Sorry, but I am seeking advice.
Is this the right place for questions and discussion regarding the content I will create and actually publish in the translated data that has not yet been created?

lucid iron
#

if it's translation to japanese (or any other non english language) then this server won't be very helpful

floral portal
#

Oh, it is not a question about the creation of the data. We were able to successfully resolve the question we asked today. Thank you very much!

#

It is about the method of distribution. I asked for opinions in the Japanese community for a while, and I was slandered by people who have never created a mod before about how to distribute it.
I am shocked and distressed.

lucid iron
#

can you link the mod you are translating?

floral portal
#

Oh, the translation data is not yet available to the public.
I have created about 20 translation data, but only one has been published on NexusMOD. The rest have not been published yet. Or about 10 cases I entrusted the data to the creator.

#

Some producers do not want to incorporate translated data into the original data. In such cases, I publish them individually.
In response to that
“It is very annoying to release the translation data individually to NexusMOD because the original new mod cannot be found!”
“Distributing them on private sites (other than NexusMOD, for example) makes it hard to find them!
I was told, “It's very annoying!

lucid iron
#

so assuming you have your translation mod set up to require the original mod in order to work at all, there's no "redistribution of assets", since you are only distributing the translation files you made

floral portal
#

I am a little concerned about what I should do about this.
I am Japanese, so I only distribute translated data with permission so that Japanese users can enjoy it more.
However, I did not expect to be called “annoying” for using a new page of translated data in NexusMOD.
Is this an opinion that is not often expressed in other countries?

lucid iron
#

nexus mod users are random people on the internet, some of whom are quite dumb and entitled

#

it's not your fault

unborn saffron
#

Hi, I've been away for a while, and I'd like to learn how to make mods with C#, but I can't seem to find a website that I think had small examples/projects to learn from.

brittle pasture
#

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

brittle pasture
#

the link for C# modding has a tutorial with a sample mod

lucid iron
#

the purpose of posting the translation as a separate mod that require the original mod to work is so that the original author can keep control over their assets

floral portal
#

Okay...thanks. I am relieved.
I didn't expect to be slandered by the same Japanese people, and I lost confidence and cried a little.
Your words cheered me up. I will continue to do so.

unborn saffron
lucid iron
#

oh sorry that was different convo

#

i think it's best if you have a mod idea to try and make

unborn saffron
floral portal
#

I am currently making MAP data mods and accessory mods in addition to translation data. That's just me doing my best to make it as enjoyable as possible for those who play. I think the people who are making translation data feel the same way.

#

I'll come back to ask about my mods the next time we talk. Thanks.

unborn saffron
#

Also, to look at the code of other mods and get an idea of how it's done.

scenic tinsel
#

just realised that some of the shane's arms differ in width on original sprites. never noticed it before.
1st is from clothing therapy. 2nd is regular.

#

never paid attention to it when drawing my sprites

#

interesting

#

i might need to redraw my beach sprites then. to keep things consistent among all sprites.

hallow prism
#

send consistency on the bottom of the earth

#

unless you have fun with it

scenic tinsel
#

hahahaha

#

i do love to scope creep myself

teal bridge
# floral portal Some producers do not want to incorporate translated data into the original data...

Hey, don't take it personally, a lot of authors prefer not to include translations directly with their own mods because it becomes a blocker to further work. If we add new strings, do we need to reach out to every translator to get new translations? Do we release the new version without proper translations and have users complain about broken strings? Etc. We also are generally just programmers, not linguists, and therefore can't validate the translations, if they preserve the original tone, if they're really appropriate for the locale and not just the language, etc.

So sometimes we'd rather not accept PRs, but we do still appreciate people adding translations as their own mods, and Nexus has translations pretty tightly coupled with the original mods so they actually show up on the translated mod's page as well. There's really no downside to doing it that way, except I guess it's a bit of extra work for the translator to add their own Nexus mod (but not a ton of work really).

I definitely wouldn't call a translation PR "annoying" and that was rude of whomever you spoke to, just explaining how this often works.

vernal crest
teal bridge
#

The OP said only 1 translation mod was published separately, and 10 cases were sent directly to the mod author.

#

I guess the author complained (weird) but sounds like an isolated incident.

#

If you really want to cover all your bases, you can just ask them which they'd prefer (post on their mod, contact on Discord, etc.).

brittle pasture
#

my reading of their post is that the user complained. mod authors are fine

floral portal
# teal bridge Hey, don't take it personally, a lot of authors prefer not to include translatio...

Yes, I understand that as well. It would be a burden on the distributor, especially if it is a mod that will continue to be updated in the future or if there is no immediate contact with the translation provider. If it is difficult to incorporate, it would be ideal to distribute them individually, and I hope that people who understand that and can work on them will update them. However, I explained that in a topic on the Japanese Stardew Valley forum, and the conversation has escalated to the point where I am being portrayed as the bad guy. Even now...

I found it very difficult to get users to understand the system if they don't understand it. At least I don't visit that forum community anymore.

lucid iron
#

Earlier they said they were "slandered by users who never created a mod"

#

So I read it as users complaining, not authors

teal bridge
floral portal
#

Sorry. I don't mean to argue here either, but rather, “I will continue to publish individually on NexusMOD,” “I will provide data to mod authors,” “Should I care about this? Or not?” Do you have a solution to the problem, such as? I posted.

teal bridge
#

Like, here is one that someone did. It shows up on my page, not the translation page.

#

So if these users are saying that translation mods are "harder to find", then that is nonsense and you should ignore them.

teal bridge
vernal crest
teal bridge
#

(And for the record, I don't think any of us perceived you as argumentative; just trying to understand how the system works)

floral portal
#

I know it's just a partial opinion, but “Is there any information about the mod that you would like to see translated?” I know this is a partial opinion, but here is the response to my question to the community. I know there is some Japanese slang, so some of the sentences may be translated incorrectly.

I want to reiterate that it is important for me to focus on the opinions I have received here.

lucid iron
#

They can just filter out translation tag on nexus yggy

teal bridge
#

Oh, I see what they're saying. Not that it's hard to find your translation, but essentially "there are too many translations and it buries the new mods". But it's still a ridiculous complaint, per chu above. ^

floral portal
#

I understand that the game itself, the users who play it, the original creators who publish it, and the supporters who make the translated data are all users who make it fun and exciting.
However, I have been in the position of creating both translated data and original mods, and I feel that a community cannot exist if there are only users who complain about the creators.

teal bridge
#

If I go to the Nexus page for SDV right now, out of 20 new mods, 2 are translations. I don't think there's a problem.

vernal crest
#

The users might prefer that a translation be integrated into the original mod page but that is not their decision to make.

teal bridge
#

Yes, precisely. It's good to get feedback from users on how a mod plays, but we do not take advice from users on how to build or release them, lol

vernal crest
#

I would personally decide that those users (the ones complaining about you) are not people I'm providing translations for. So too bad if they're unhappy. Plenty of other people will be grateful.

teal bridge
#

I suppose I understand the complaint about there being too many new mods, like, if you're really obsessed with modding the game and constantly monitoring for new mods and trying out every single one, but those are going to be a very tiny minority of users.

#

And that's not just translations, there are many actual mod authors who spam trifling 1-line mods.

floral portal
#

Of course, I am also a user of NexusMOD, as I am in the position of being a playing user, and I agree with some of their opinions. Just a little!
But I have never complained about the well-meaning mod authors and collaborators.
So I hope to remain a good collaborator and playing user.

vernal crest
#

(Gratitude matters a lot to me. If someone who expresses gratitude has a suggestion, I will listen to it. No gratitude = I kick them into the sun.)

floral portal
#

I really feel more confident now that I have the input of the community here. Thank you.
I want to express my heartfelt thanks to all of you.

teal bridge
lucid iron
#

I'm in the camp of accept translations as PR but that's cus I'm never making mod with actual creative writing in it ukimasu2

teal bridge
# vernal crest (Gratitude matters a lot to me. If someone who expresses gratitude has a suggest...

TBH it matters rather less to me. It's nice to be appreciated, of course. But whether or not I will act on a suggestion is largely a question of whether it's (a) interesting to me and (b) reasonably practical to do.

If someone says "your mod blows chunks, but it would be halfway usable if it did X or Y differently, etc." then I wouldn't immediately dismiss them as a crackpot, just evaluate whether what they're saying makes sense if I take off my dev hat and put on my gamer hat.

(That being said, 9 out of 10 user suggestions are crap, and virtually no other profession takes audience suggestions. Can you imagine an artist, or a musician, or even an accountant acting on a client/spectator telling them how to do their craft?)

#

Is Nexus being crazy slow and unreliable for anyone else right now? Like 30 second page loads and Cloudflare gateway errors? (Edit: ok yeah, their status page says "degraded performance")

hallow prism
#

i hate global fade and global fadetoclear commands, they never looks nice

teal bridge
#

Why, because of the callback?

hallow prism
#

because i never manage to get something smooth, i want a fade to black, some time in black, then slowly unfade, and what i got usually is fade to black, stay black a bit, then sudden unblack then weird unfade

brittle pasture
#

yeah I noticed that happening occasionally

past knot
#

What exactly is the $h

#

I noticed it in a lot of dialogue files and on the wiki, but no explanation of it

hallow prism
#

the opposite of my current mood

spice inlet
#

updated UBs overview menu for the book bundles and changed the layout to be more centered when there is no description SDVpuffermoustache

hallow prism
#

it's explained, just not on one big block

#

it's explained that $ is the code for portrait, and then that portraits accept some letter value or some index value

past knot
#

Oh! So basically I would put $ followed by the number of the portrait I want for that dialogue?

vernal crest
spice inlet
past knot
# vernal crest

Which page is this...I have so many open I'm not even sure anymore

vernal crest
#

Sorry for embed everyone I can't remove it on mobile

hallow prism
#

thanks 🙂

hallow prism
lone ice
#

any idea how I would tell a fruit tree to grow a different item on certain days of the season?

#

I tried creating a whole new tree entry to swap based on day logic but realized that was far too much 🤣

#

I just want cherry trees to grow harvestable blossoms instead of cherries early in the season and have already created the new object

brittle pasture
#

you can insert a new entry in the fruit tree's Fruit array

#

something like ItemId equals your cherry blossom item with Condition on the days you want

#

and use MoveEntries to push your entry to the top so the game checks it before the cherry fruit

lone ice
#

ah ok that must be the bit I was missing

#

I had this (without the conditional bit yet):

#

{
"Action": "EditData",
"Target": "Data/FruitTrees",
"Entries": {
"628": {
"Fruit": [
{
"ItemId": "ShipsAhoy_CherryBlossom"
}
]
}
}
},

#

but it was still loading cherries

brittle pasture
#

your patch probably isn't loading since that would break the entire fruit tree

#

since you're replacing the entire entry

lone ice
#

ooh okay

#

thank you!

calm nebula
#

If you do it should segfault

pine ermine
#

Wait, what?

#

I didn't think segfaults were possible in C# without an unsafe context.

gaunt orbit
#

it's probably not a literal segfault but some other error that's functionally similar

#

probably AccessViolationException or EngineExecutionException

#

although harmony should forbid you from creating __instance patches to static methods in the first place 🤔

pine ermine
#

Why does the SMAPI use a custom harmony build btw?

gaunt orbit
#

does it?

#

I thought it just used a slightly out of date version

pine ermine
#

That's what it says

gaunt orbit
#

according to the readme on the linked fork, this is why

This fork is identical to the official version, with two changes:

Generated method names include the patching Harmony IDs to help troubleshoot error logs:

// with original Harmony
   at StardewValley.Farm.resetLocalState_Patch1(Object )

// with fork
   at StardewValley.Farm.resetLocalState_PatchedBy<Pathoschild.SmallBeachFarm>(Object )

The 0Harmony.dll no longer has Mono.Cecil and MonoMod merged into it. This fixes some of their types being available to mods, and avoids compile errors in SMAPI since it uses Mono.Cecil too.

#

which makes sense

pine ermine
#

Yeah, I figured it had something to do with dependencies

calm nebula
final arch
#

but yea I assume if I actually call a func that doesnt exist

spice inlet
#

I wonder if pathos has any plans of updating harmony at some point

#

1.6 would have been the opportunity to do that

pine ermine
#

Is it possible to use a token in a content patcher edit-data target?

calm nebula
#

If there is something you want you can make the argument to Pathos

lucid iron
#

that's commonly used to make sprites seasonal

sudden geyser
#

so if a mod requires BFAV, JA, and PFM, which converter should be used on it?

iron ridge
#

!converters

iron ridge
#

bfav2cp for bfav

#

ja to conpat might might work for JA, and pfm iirc is updated?

sudden geyser
iron ridge
#

I sent two messages

sudden geyser
#

I thought pfm was being retired

lucid iron
#

you basically have 3 mods in 1

#

so you run the relevant converter on each

iron ridge
#

last updated in may, which is more recent than march

pine ermine
final arch
#

whats the breaking change?

lucid iron
calm nebula
#

You can still do it though

#

Frankly, linkoid, if you want a test case that gets pretty nutty about what you can do in CP, use that

proud wyvern
sudden geyser
iron ridge
#

you have the full command with placeholders

pine ermine
#

Would there ever be a token at the beginning of a target though?

calm nebula
#

Sure!

#

In the same mod I have a target that changes depending on what other mods are installed

#

To make my life easier it js assigned to a dynamic token

pine ermine
#

Sounds like an advance use case

calm nebula
#

Sure!

#

This is what happens when I touch CP

proud wyvern
#

What if you wanted to use your ModID

#

Targeting your own assets

lucid iron
#

oh yea i made a token for the name of my custom asset

#

so that if i ever change it no one has to know

pine ermine
#

Hmmm

calm nebula
#

@desert vapor did y'all make any changes to monogame in 1.6.9?

#

Figured I might as well ask.

pine ermine
#

Maybe I should weight it instead as: Would using quotes here lead to more people having syntax errors due to missing quotes, or lead to more people confused why there is a red line under their unquoted string that starts with {{

proud wyvern
#

I thought there was no MonoGame update in years

calm nebula
#

So I don't think it's levels personally

#

But figured i should ask

#

Also stardew has it's own monogame fork anyways

proud wyvern
#

Oh?

desert vapor
#

Actually, a lot

calm nebula
#

Any change to how textures...oh

desert vapor
#

This one is out of my wheelhouse though, textures were changed slightly by the mobile team

#

To support power of two or something

calm nebula
#

(I'm theorizing without evidence here.)

#

...did they touch levels

desert vapor
#

Worth testing if it works on 1.6.8 monogame fix beta though

calm nebula
#

Once I have a test group I can start testing

#

Until then I can toss numbers info wolframalpha lol

desert vapor
#

If it works there, then the issue will be with the new Monogame stuff from mobile

calm nebula
#

Thank you!

desert vapor
#

We are trying as much as possible to keep the codebases for the two of them the same

#

Which also unfortunately broke modded audio recently, but I think that should be fixed in the current beta?

#

Anyhow, modding is where I'd expect the new Monogame changes to cause issues, so please let me know if there's anything even hinting at it being a MG issue

calm nebula
#

I fucking love object disposed errors, don't you?

calm nebula
#

The last time I looked at setdata/getdata was about six months ago

#

But I still mostly remember

calm nebula
#

gets kicked out of the room

sudden geyser
#

Alright, now I've got another question: how long would you say it would be before a mod could be considered 100% abandoned and able to be taken over, if ever? We're talking no sign of the creator, they haven't been on the nexus is over a year, and so on.

calm nebula
#

Never

#

(Look at permissions)

latent mauve
#

If permissions do not exist or do not explicitly state that you can reuse/redistribute assets, then you pretty much cannot/should not take over the mod for public distribution without direct permission from the original mod author.

#

Personal edits for personal use are a bit of a grey area, depending.

vernal crest
#

Where is the grey area for personal use?

lucid iron
#

mod authors can't really stop someone from editing local files on their own computer

calm nebula
#

(Microsoft might try though)

vernal crest
#

So if there are no permissions or the permissions do not allow modification, that means that modification for personal use is also forbidden but the grey comes in because it can't be policed in any way?

#

(I am specifically talking about mods here, not paid products with warranties or anything.)

#

I am also curious if this is a legal thing, a website-specific rules thing (for Nexus) or just an ethical thing.

#

Mostly because I tend to encourage people to edit things for personal use and I want to know if I am breaking any laws or rules doing so xD

desert vapor
#

That's a very gray area question

#

Even licenses are not strictly the same in every jurisdiction

desert vapor
#

Generally speaking, no one will be taken to court for modifying something locally for personal use, as long as it is not redistributed in any way

#

One exception would be if somehow, personal modifications could interfere with a service working as intended

#

i.e. if I modify, idk, SpaceCore locally so that I crash the game and/or exploit someone else when I connect to them in multiplayer

#

But generally speaking, the "no derivatives" clause of a license tends to only apply to distribution

lucid iron
#

that might come up more with server-client game like minecraft

desert vapor
#

Yeah, for instance, Minecraft hacked clients yeah

vernal crest
#

Thanks Myuu

desert vapor
#

In technicality, I think that's more in violation of Terms of Service/End User License Agreements, which aren't legally binding persay

#

So generally speaking, when it comes to intellectual property, personal use modification is, in practice, 100% okay

#

idk exactly what the law says about it, but it is just very hard to police in any case

old edge
#

hello

spice inlet
#

hey 🙂

desert vapor
#

hello!

old edge
#

I'm trying to find some bit of code

hallow prism
#

i'm working on some dialogues

old edge
#

I can't find it.

hallow prism
#

i can write them

old edge
#

I'm looking for the code that switches the players sprite from swimming into the default walking sprite.

#

I already looked in farmer.cs but it doesn't match but idk...

lone ice
#

I'm wondering if someone can help me figure out why this isn't working:

// swap cherry blossoms to fruit tree for cherries in the first few days of spring

{
"Action": "EditData",
"Target": "Data/FruitTrees",
"TargetField": [ "628", "[LocalizedText Strings\Objects:Cherry_Name]", "Spring", "Fruit","Default"],
"Entries": {
"ItemId": "ShipsAhoy_CherryBlossom"
},
"When": {
"Season": "Spring",
"Day": "1",
"Day": "2",
"Day": "3"
}
},

tiny zealot
#

you want "Day": "1, 2, 3" instead of separate Day entries

hallow prism
# lone ice I'm wondering if someone can help me figure out why this isn't working: // sw...

        {
            "LogName": "Orange Trees Produces",
            "Action": "EditData",
            "Target": "Data/FruitTrees",
            "TargetField": [
                "630",
                "Fruit"
            ],
            "Entries": {
                "Lumisteria.MtVapius_OrangeBlossom": {
                    "Season": "spring",
                    "Chance": 0.3,
                    "Id": "Lumisteria.MtVapius_OrangeBlossom",
                    "ItemId": "(O)Lumisteria.MtVapius_OrangeBlossom",
                    "StackModifiers": [
                        {
                            "Id": "Lumisteria.MtVapius_OutdoorDouble",
                            "Condition": "LOCATION_IS_OUTDOORS Target, RANDOM .3, !LOCATION_CONTEXT Target Island",
                            "Modification": "Add",
                            "Amount": 1.0,
                        },
                    ],
                    "StackModifierMode": "Stack",
                }
            }
        },
        {
            "LogName": "Orange Trees Summer Produces",
            "Action": "EditData",
            "Target": "Data/FruitTrees",
            "TargetField": [
                "630",
                "Fruit",
                "Default"
            ],
            "Entries": {
                "Season": "summer"
            }
        },
        {
            "LogName": "Orange Trees Season",
            "Action": "EditData",
            "Target": "Data/FruitTrees",
            "Fields": {
                "630": {
                    "Seasons": [
                        "spring",
                        "summer"
                    ]
                }
            }
        },```
How i do it in VMV for orange blossom
grizzled rain
#

hey, can somebody help me out here? one person who uses my mod found a bug where they can't smelt anything other than fire quartz, and i think i did something wrong with the code, i'm just not sure how to fix it. i'll upload the .json to smapi.io in a minute.

tiny zealot
hallow prism
#

first is to add the product i want in the tree, second is to make the orange a summer product, third is that so the tree produce in spring outside of greenhouse in addition of summer

hallow prism
uncut viper
#

(also I can't imagine you want to be targeting the localized text token in your target field)

hallow prism
#

you need to target field

lucid iron
grizzled rain
#

here is the code

tiny zealot
grizzled rain
sudden geyser
#

Regrettably, I return once more. The JA to Conpat converter says it's looking for a textures folder? The mod I'm trying to sort out just has "assets"?

grizzled rain
#

okay, this is a little confusing, but i'll do my best.

hallow prism
#

it's NOT that different from what you have

sudden geyser
hallow prism
#

basically, you need to add a page to a book, rather than replace the whole book by your page

#

so you need to open the book first

#

it's what target field do

#

"Target": "Data/Machines",
"TargetField": [
"(BC)20",
"OutputRules"
],
"Entries": {

#

this part

old edge
# lucid iron Farmer.changeOutOfSwimSuit ?

Yeah I have something like that already implemented in my code. But the farmer is not changedout of the swimming state. They are changed out of the farmer clothes however. They still are shown swimming with half the sprite cut off and slowed.

grizzled rain
old edge
#

hmmm stopSwimming in event.cs?

lucid iron
#

StardewValley/GameLocation.cs

hallow prism
lucid iron
#
case "PoolEntrance":
    if (!Game1.player.swimming)
    {
        Game1.player.swimTimer = 800;
        Game1.player.swimming.Value = true;
        Game1.player.position.Y += 16f;
        Game1.player.yVelocity = -8f;
        playSound("pullItemFromWater");
        Game1.multiplayer.broadcastSprites(this, new TemporaryAnimatedSprite(27, 100f, 4, 0, new Vector2(Game1.player.Position.X, Game1.player.StandingPixel.Y - 40), flicker: false, flipped: false)
        {
            layerDepth = 1f,
            motion = new Vector2(0f, 2f)
        });
    }
    else
    {
        Game1.player.jump();
        Game1.player.swimTimer = 800;
        Game1.player.position.X = playerStandingPosition.X * 64f;
        playSound("pullItemFromWater");
        Game1.player.yVelocity = 8f;
        Game1.player.swimming.Value = false;
    }
    Game1.player.noMovementPause = 500;
    break;
case "ChangeIntoSwimsuit":
    Game1.player.changeIntoSwimsuit();
    break;
case "ChangeOutOfSwimsuit":
    Game1.player.changeOutOfSwimSuit();
    break;
#

this is the pool touch action handler

#

for the map thing

#

tbh maybe u should just do it this way

#

put a change into/out of swimsuit tile in your map

#

and not use bespoke C#

grizzled rain
old edge
#

the issue occurs when the player is defeated when swimming that's why some extra code is required.

hallow prism
lucid iron
#

in addition to change swim suit

#

you need to also set swimming to false

old edge
#

oh ok

sudden geyser
#

anyone got a sec to help an idiot with ja2conpat?

iron ridge
#

did you open the terminal in its folder

old edge
#

I was trying to implement some custom rescue NPCs...

#

when defeated

sudden geyser
iron ridge
#

whats the exact error

sudden geyser
#

and then if I create that folder, we get this:

#

just does nothing, produces no files in either place.

iron ridge
#

escape the backslashes

#

wait no nvm

#

what mod are you converting

sudden geyser
#

A while back I made an add-on for it that adjusts them to use the recycler via PFM to remove the dependency on Trent's machine, since his machine was deprecated.

iron ridge
#

is there anything in the output folder

sudden geyser
#

(nothing)

lone ice
sudden geyser
#

I tell you, a lot of frustration would be saved for the converters if they were just like, bat files that had requirements for you to install python

hallow prism
#

you'll need to provide a fresh json and maybe a patch export

#

!patchexport

ocean sailBOT
#

A patch export makes a copy of specific stuff in your content folder so you can see what changes have been applied.

  1. Load up a save (with Content Patcher installed)
  2. Type patch export <FILEPATHOFTHING> in the SMAPI console and hit return
  3. Look in your patch export folder in the game folder for the relevant json file or image
  4. If it's a json file, you can share it via smapi.io/json. If it's an image you should just be able to look at it.
iron ridge
sudden geyser
#

Granted I"m not much of a coder, more of an outdated website builder wit a mildly unhealthy obsession over a few obsolete dead mods

lucid iron
#

you could find a CP animal mod and remake this fox mod if you want

lone ice
hallow prism
#

to see if your edits are applied

sudden geyser
velvet narwhal
#

json not really coding

calm nebula
#

Probably less coding than learning python tbh

#

Python packaging is. Notorious

velvet narwhal
#

sNaKeCaSe

sudden geyser
lucid iron
#

i think it's similar level of coding as writing html/css blobcatgooglyblep

uncut viper
#

just adding it as a requirement is credit enough, i dont mind, but i appreciate it either way SDVpufferheart dont be afraid to ping me if you have any questions/get confused!! (but ofc it does seem like our timezones are a bit misaligned lol. but i dont mind bein pinged ever, no worries)

lucid iron
#

tones of examples here

sudden geyser
calm nebula
#

I'm pretty dumb and I write my css by hand lol

old edge
velvet narwhal
#

ah yes become voodoo

velvet narwhal
#

how did the uh, previous thought from a few days ago, go? the idea of copying passoutdeath into swimmingpassout

uncut viper
sudden geyser
velvet narwhal
#

basically if you don't see a .dll and it's all jsons you're free game

drowsy pewter
#

conpat

lone ice
drowsy pewter
#

I'm trying to catch up on the chat like "what does making ja compat mean"

velvet narwhal
#

I have no context either, but python and suffering

calm nebula
drowsy pewter
# lone ice
  1. thats patch summary not patch export and
  2. she wants you to look at/send the exported json file
lucid iron
drowsy pewter
#

so type patch export Data/FruitTrees in your smapi window for example and then put the file in smapi.io/json

uncut viper
lone ice
brittle pasture
#

what's the best way to do OR condition in CP When fields? specifically I need a patch to apply if a config field is set OR a mod is installed (it's complicated)

lone ice
drowsy pewter
#

also im carrying multiple chemicals so i cant help further

drowsy pewter
#

query

uncut viper
#

i alwayus forget Query exists

hallow prism
#

i prefer dynamic tokens because i can understand them

brittle pasture
#

didn't know they existed to begin with! thanks both, I'll take a look

hallow prism
#

but query are great if you like them

round dock
hallow prism
#

ok so your patch is appled, prof twizz

#

but you also made the only season of the cherry tree spring

#

what was the issue you had in game?

lone ice
#

my cherry tree still grows cherries, not cherry blossoms (an item you can pick)

#

I have created a whole item meant to fall off the tree instead of cherries

hallow prism
#

ok, you didn't do anything to limit cherry to summer, so it'll grow both with likely equal chance for both

#

how many days did you test?

brittle pasture
#

I recall fruit trees short circuit and pick the first eligible item?

lone ice
#

What do you mean about limiting cherries to summer? They grow in spring?

brittle pasture
#

so you have to:

  1. Move your entry to the top
  2. Add a condition field to your entry
hallow prism
lone ice
#

how do I tell it my item is the priority?

brittle pasture
lone ice
#

I tried finding the page for that in content patcher but couldn't figure out the syntax at all

brittle pasture
hallow prism
#

hmm

#

i thought i got orange blossom in the greenhouse before, but maybe i'm misremembering

brittle pasture
#

(fwiw I never did in my main save)

#

only outdoors

hallow prism
#

ok! then maybe i need to move entry too one day (but at least its less urgent with the way it works outdoor)

lone ice
#

Do I perhaps need both Entries and MoveEntries then?

brittle pasture
#

yes

lone ice
#

OH. okay

#

thank you

hallow prism
#

yes, you need to create it THEN move it

#

can't move what doesn't exist 🙂

lone ice
#

I saw that I just couldn't figure out how to move it correctly

#

am I moving cherry blossoms or the tree entry?

#

because when I tried them it said "fruittrees isn't an ordered list"

brittle pasture
#

put something like this

"MoveEntries": [
  { "ID": "ShipsAhoy_CherryBlossom", "BeforeID": "Default" },
]

in the same change block as where you added your Cherry Blossom Entry

lone ice
#

ok

#

ok so it's in Data/Objects

brittle pasture
#

sorry, same block where you added your cherry blossom drop to the cherry tree in Data/Fruits

lone ice
#

It's still populating cherries, not cherry blossoms, I'm just not sure which part is wrong

brittle pasture
#
  • MoveEntries must be on the same level as Entries. put it below
  • Set Id in your ShipsAhoy_CherryBlossom block to also be ShipsAhoy_CherryBlossom.
    fix that and it should be good to go!
lone ice
#

well it's now at the top of the list

#

I checked patch export

#

but in the game itself I still see cherries popping up on my tree

#

not the blossom

brittle pasture
#

did you test over multiple days?
can you post the updated patch export?

drowsy pewter
#

does tree data persist in the tree like crop data does

lone ice
#

OH IT WORKS

drowsy pewter
#

i know the texture doesnt persist but you--nvm

brittle pasture
#

guess not haha

lone ice
#

I didn't check enough days haha

#

Thank you all so much

#

there she is

#

I'm so proud

brittle pasture
#

one last thing, did you add a condition/chance to the cherry blossom entry?

#

if not then it'd produce only cherry blossoms, and we wouldn't want that

lone ice
#

wait it's dropping in duplicates 🤣

#

oh I'm about to add the condition, I just wanted to make sure it worked at all first

brittle pasture
drowsy pewter
#

you're wild

brittle pasture
#

that means a lot coming from you lol

gilded comet
#

oh this is sooo cool selph!!!

brittle pasture
#

(and also maybe an immersive manure thing idk)

lone ice
#

does anyone know how I could reskin the slime in the secret woods as pigs and make them drop a custom item?

drowsy pewter
#

you can retexture them but not get rid of the colors

hallow prism
drowsy pewter
#

so youd have green and blue pigs in the best case scenario

lone ice
#

I don't mind that 🤣

#

that's actually really funny

drowsy pewter
#

Dont know if you can change the item drops without C# though

hallow prism
#

also i wonder if i'd like to have them give some fancy wool

#

yes, you can append the drop list, with an update rate + location condition this may work

#

but it's a bit advanced

lone ice
#

I can't do C#, nobody's been able to figure out what's wrong with my Visual Studio config

#

how would I go about changing the texture though? I can't figure out what that specific slime would be called/referred to if I wanted to use EditImage

#

OH conditional

#

if in X location

#

but I still don't know how to tell it to reskin any slime 🤣

brittle pasture
hallow prism
#

whatever is convenient for you at the time 🙂 message on dm, on vmv server, on nexus... and sure, no rush!

#

it'll let me time to see which option i prefer 🙂

lone ice
#

omg I forgot my pig sprites are too big 🤣 I'm going to animate boar slimes

#

I got it though

#

thank you all

teal bridge
brittle pasture
#

you cannot have animals produce both items on the same day. it's one or the other

#

oh yeah that's what I meant haha

#

like it's a very tiny annoyance

teal bridge
#

Ok, you said they "stop producing" duck eggs which surprised me.

brittle pasture
#

probably should have used better wording haha

teal bridge
#

But I think it's true that you can only get one per day, same as the rabbits.

brittle pasture
#

(I may also have added that functionality so that Pigs can still dig up truffles after I milked them for Truffle Juice)

teal bridge
# lone ice I can't do C#, nobody's been able to figure out what's wrong with my Visual Stud...

This is kind of a longshot, but is it possible you don't have the SDK installed? Not sure how you'd get into that state, but when you showed your VS installation screen it wasn't there, and while you wouldn't be able to run SMAPI at all without the .NET 6 framework, the SDK could still be missing.

https://dotnet.microsoft.com/en-us/download/dotnet/6.0

Also, I don't recall if anyone asked you already but it might help to try running a dotnet build from the command line instead of building in VS, just to see if the result is any different.

lone ice
rancid temple
teal bridge
#

Great, I'd almost suppressed that memory and now you had to go and repeat it.

unborn sluice
#

hey does anyone know the mod for changing the wallpapers in the hallways? i think i saw it a few days ago on this server but i cant find it now

rancid temple
unborn sluice
#

sorry i didnt really know where to put it thank you

hallow prism
#

you already can change them

#

the mod you have in mind is to make them entirely visible

unborn sluice
#

really? i tried to but i couldnt

#

maybe the mod about the whole thing was just a fever dream then

#

not meant sarcastic

rancid temple
#

I mean, a map edit to get rid of the like flashing or whatever it's called that is on the bottom

#

Would be pretty straightforward and I'd be surprised if there isn't one for at least some of the house

#

But yeah, I thought the room dividers could already be wallpaper'd

unborn sluice
#

maybe i got something mixed up then

#

thanks anyway

#

yeah you can change it I’ve just been right clicking the entire time

pine ermine
#

Is it possible to use a token to define the name of a dynamic token?

drowsy pewter
#

dont think so

#

you can try

odd badge
#

@pine ermine hello, I got an update upon the RSV and fishing rod issue

#

seems like it's not RSV, but a mod that do a patch when RSV is installed, the "Adventurer's Guild Expanded for 1.6". It's only a CP mod I don't now why it does this

pine ermine
#

gotta link to it?

odd badge
rancid temple
#

If it's a CP only mod then it can't affect harmony patches

#

Unless another mod is intentionally changing it's harmony patches when that mod is installed, but that still falls on the other mod

#

Ironically, that's the same mod I kept getting reports for before I found out it was actually Downtown Zuzu that was doing an aggressive prefix

pine ermine
#

Looks like we got an emergent bug on our hands.

#

Those are the worst to debug

rancid temple
#

I feel like this problem probably needed its own thread like forever ago

calm nebula
#

Shall we start onr

#

Funny fish pond bug thread go

rancid temple
#

I just considered trying to find everything about this in the sea of this channel and died a little inside

odd badge
rancid temple
#

I don't imagine your particular issue is from DTZ, at least I hope it's not patching any fishing rod or pond stuff

#

I just mean that your culprit likely isn't a CP mod

odd badge
#

only my mod + RSV + "Adventurer's Guild Expanded for 1.6" didn't work.

#

only my mod + RSV worked

ocean sailBOT
#

Log Info: SMAPI 4.0.8 with SDV 1.6.8 build 24119 on Microsoft Windows 11 Pro, with 8 C# mods and 4 content packs.

odd badge
ocean sailBOT
#

Log Info: SMAPI 4.0.8 with SDV 1.6.8 build 24119 on Microsoft Windows 11 Pro, with 8 C# mods and 3 content packs.

odd badge
#

Harmony_summary with only Quality Fish Ponds + RSV + Adventurer's Guild Expanded for 1.6:

rancid temple
#

I really should have made a 1.6.8 back up before updating

lone ice
#

{
"Action": "EditData",
"Target": "Data/Monsters",
"Fields": {
"Green Slime": "100/10/0/0/false/1000/ShipsAhoy_BoarMeat 1 881 .2 430 .1 /2/.01/4/2/.5/false/6/Wild Boar"
},
"When": {
"LocationContext": "Default"
}
}

#

I've been trying to do it like this but that doesn't change the model at all

lone ice
#

oooh fancy, thank you!

inland cedar
#

is this When correct?

"Target": "Maps/Custom_MT_Island_House",
"FromFile": "Assets/Custom_MT_Island_HouseEdit.tmx",
"PatchMode": "Overlay",
"When": {
   "HasReadLetter": "{{HasFlag: anyPlayer}} MT.IslandBedroom"
}```
#

mt.islandbedroom is a letter

rancid temple
#

I believe it would be "{{HasReadLetter: anyPlayer}}": "MT.IslandBedroom"

inland cedar
#

seem not quite right. CP throw parsing error for this token

#

this one seem work "HasReadLetter: anyPlayer": "MT.IslandBedroom"

nocturne field
#

i'm a person with like zero modding experience but i want to try and see what the problem is with this mod and if it's an easy fix, it throws this error randomly: 20:13:38 ERROR Spouses' Island This mod failed in the GameLoop.TimeChanged event. Technical details: NullReferenceException: Object reference not set to an instance of an object. at SpousesIsland.Events.Time.OnChange(Object sender, TimeChangedEventArgs e) in /home/milan/Programación/SDVmods/SpousesIsland/Events/Time.cs:line 17 at StardewModdingAPI.Framework.Events.ManagedEvent1.Raise(TEventArgs args) in SMAPI\Framework\Events\ManagedEvent.cs:line 101` so i looked into the github, to download the mod's files, and checked line 17 of "time.cs". but i'm kinda lost now.

#

i'll post a log

rancid temple
ocean sailBOT
#

Log Info: SMAPI 4.0.8 with SDV 1.6.8 build 24119 on Microsoft Windows 11 Home, with 96 C# mods and 97 content packs.
Suggested fixes: One or more mods are out of date, consider updating them

nocturne field
#

(i've tried the latest build but it has the exact same issue)

uncut viper
nocturne field
#

this is the line that's apparently causing issues, line 17.

rancid temple
#

The key? Or is it more nuanced than that?

uncut viper
rancid temple
#

Oh okay, that's good to know

#

Thanks SDVpufferheart

uncut viper
rancid temple
velvet narwhal
nocturne field
#

yeah, mb

rancid temple
#

They're trying to fix it, seems like

nocturne field
#

i want to see if my extremely limited knowledge can do anything lol

uncut viper
#

you'd have to rebuild the mod after the fix too, you cant just edit the .cs files

nocturne field
#

i'm aware of that dw

#

i know a bit about that so...

nocturne field
#

wait lemme check

#

hmm yeah, let me just download the entire uncompiled mod rq

#

if it was defined, would it be in the same cs file?

rancid temple
#

Depends on the author, everyone has their own way of doing stuff

nocturne field
#

aight, looks like i'm gonna have to go on a bit of a chase then!

uncut viper
#

its just defined in ModEntry as a static bool

#

so possibly just putting ModEntry. at the start of the variable would let it find it

nocturne field
#

i'll try that.

#

gonna have to get my work environment set up for this lol

lucid iron
#

Did you manage to build mod yet

nocturne field
#

brb

calm nebula
nocturne field
#

i have to set up an environment rq to properly approach this

lucid iron
#

yea i was ask if you got a local build working, you have the C# guide open right

#

!startmodding this one

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.

nocturne field
#

alright now i just wait

nocturne field
#

okay my environment is FINALLY set up

nocturne field
#

i doubt this will help, no offense, but it's learning regardless lmao

warm egret
#

How to use both CP and C # in one mod? VS provided the following error message:

#

[mod build package] The mod's manifest.json file is invalid: manifest sets both EntryDll and ContentPackFor, which are mutually exclusive. InvisibilityElixir C:\Users\123.nuget\packages\pathoschild.stardew.modbuildconfig\4.1.1\build\Pathoschild.Stardew.ModBuildConfig.targets 87

uncut viper
#

you need two mod folders, one for each mod

#

each mod gets its own manifest.json

#

you can put both of those two folders inside another folder after

gaunt orbit
#

(you can also edit assets with just c#. if you're not doing anything too large or complicated with the CP part that can be a good option)

warm egret
uncut viper
#

two unique IDs yes, but the update key can be the same nexus page

#

(or wherever else you release it)

warm egret
#

thank you

old edge
#

Hello

lone ice
#

But when I'm actually fighting them they're behaving as normal slime

#

even though the patch export function shows the code above

lucid iron
#

you can only reskin monsters

old edge
#

Use harmony patch

gaunt orbit
#

because the monster data is determined by the class name not the other way around

lucid iron
#

need to actually make a custom monster class in C#

old edge
#

I patched it

gaunt orbit
#

you have to use harmony or subclassing for custom monsters

lone ice
#

I just wanted a custom item drop which someone earlier said they could do with content patcher

ocean sailBOT
#

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

lone ice
#

but they didn't actually say how

old edge
#

I used a location in mine so in set location monster stat changes

gaunt orbit
lone ice
#

that's exacyly what I need

lucid iron
#

well you can make all green slimes look like boars and drop boar stuff think

lone ice
lucid iron
#

FTM has some utils for this i believe, RSV uses it

#

*farm type manager

old edge
#

C# was used in mine

gaunt orbit
#

oh I see, I misinterpreted what you meant by "behavior"

old edge
#

Harmony

nocturne field
#

okay so this is the part where i suck, i'm trying to build the mod but i get these two errors 1>------ Build started: Project: SpousesIsland, Configuration: Debug ------ 1>C:\Users\OkeiN\OneDrive\Documents\SpousesIslandFix\SpousesIsland\ModEntry.cs(63,45,63,63): error CS0246: The type or namespace name 'IContentPatcherAPI' could not be found (are you missing a using directive or an assembly reference?) 1>C:\Users\OkeiN\OneDrive\Documents\SpousesIslandFix\SpousesIsland\ModEntry.cs(117,52,117,76): error CS0246: The type or namespace name 'IGenericModConfigMenuApi' could not be found (are you missing a using directive or an assembly reference?) ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ========== Build failed.

lone ice
#

I was hoping to avoid putting other peoples' mods in my mod, I'm not really sure what the consequences are of doing that

nocturne field
#

I gotta brb and take my meds

#

but i'll be back very soon

old edge
#

Farm type manager works for custom loot drops

lucid iron
#

its ok most ppl have ftm already

nocturne field
#

i am like, ***really ***bad at this lol

lucid iron
#

you arent putting all of ftm in your mod, just using it as dependency for a ftm content pack

lone ice
#

what's harmony, a mod?

lucid iron
#

harmony is a C# library included with smapi

#

it's used to alter game functions at runtime

gaunt orbit
lone ice
#

oh yeah I can't do that, I can't get C# working yet

latent mauve
#

Basically you are writing a pack that uses FTM's framework to operate, but as a result, your mod should have FTM set as a dependency. You aren't packing FTM's files into your own mod, just your own content file that uses their framework for the code language. <-- this is in response to Prof. Twizz

lone ice
#

something wrong with my visual studio setup

lucid iron
#

you dont need to make bespoke c# for this tbh, ftm should cover what you want monS

lone ice
#

I guess if it's that popular it probably won't break or not be updated next time SV is

gaunt orbit
# lone ice what's harmony, a mod?

Harmony is one of the modding libraries available to use through SMAPI. it allows you to alter game code. You can use it by adding <enableharmony>true</enableharmony> to your csproj

#

but you may not need it

lone ice
#

ok, thanks everybody, i'll go poke around FTM

old edge
#

I needed it cause I altered the speed

gaunt orbit
#

FTM is probably what you want

nocturne field
#

let me try that

gaunt orbit
# nocturne field let me try that

make sure to change the namespaces when you do (to something in your own mod), and also make sure to delete that one line out of the GMCM api that it says to delete

nocturne field
#

partially i want to give up, but i just don't wanna feel like i failed something lol

lone ice
#

wait does modding with FTM also require C#

lucid iron
#

no u make json content pack

#

the format is different

lone ice
#

i'm not sure i'm reading the correct information about this

#

i'm looking at this

nocturne field
#

i was able to fix the first error tho

gaunt orbit
lone ice
#

oh I wasn't scrolling up high enough lmao

lucid iron
#

FTM pack needs a separate manifest.json

gaunt orbit
#

It won't give you errors if you don't do that but might end up being confusing later

lucid iron
#

so it's 2 mods to smapi, but ofc users can download both ur CP and ur FTM from same mod page

nocturne field
old edge
#

Name it anything

vernal crest
lone ice
#

thank you!

old edge
#

FTM has a neat configuration tool

nocturne field
#

I...don't understand. i'm sorry. i'm really gonna just give up i think

#

I'll try one more thing

#

I thought this would be easier, i was naive lol

old edge
#

C# hard learning curve CP a little easier

nocturne field
#

Yeah, i'm just trying to fix a c# mod

old edge
#

Hmm

nocturne field
#

but i would definitely of just done content patcher if it was an option lol

old edge
#

What's the problem you can't build? You are missing usings it says

nocturne field
#

yeah i can't build, it throws an error about generic mod config.

old edge
#

Using Stardewmoddingapi;

nocturne field
#

i was able to fix the content patcher error

#

now it just says this

#

1>C:\Users\OkeiN\OneDrive\Documents\SpousesIslandFix\SpousesIsland\ModEntry.cs(117,57,117,81): error CS0246: The type or namespace name 'IGenericModConfigMenuApi' could not be found (are you missing a using directive or an assembly reference?)

old edge
#

That's not so bad need to tinker a bit

vernal crest
#

Oh you did, sorry

#

My eyes just skipped over your reply

nocturne field
#

all good.

old edge
#

Tinkering time

nocturne field
#

Yeah, i'm not skilled in the slightest but i'll try a bit

old edge
#

You need to find the method

#

I'm not even at my PC yet

latent mauve
#

Okay, so on my previous issue with the cellar entrance and spouse room decor disappearing when a config is changed, how would I simulate reloading the game with the Patch UpdateOn options? Can I?

#

Because rejoining the game does in fact fix it, but that's not feasible for the host player.

#

Basically, my question is: If the change to the config (which then changes which map is loaded to the FarmHouse) breaks those entrances, what do I need to do to NOT break them, and is it something I can append to the patch itself to somehow change WHEN that config option gets applied?

nocturne field
#

okay so it looks like i fixed those two errors i got

#

i'm able to build now.

#

so now i just fiddle with the source code and hopefully fix things lol

latent mauve
#

I guess, alternatively, I can change my mod construction so that they can't do any config options, but that seems sad. :/

#

I can't think of how to make it so config options made in game don't apply until you open the save again

glad zenith
#

i spent an hour of my life trying to not to message this channel because i've asked this kind of question a couple of times but could somebody let me know where the sprites of the cooked items are? and more specifically where the ginger ale sprite is?

vernal crest
#

Ginger ale is the second row from the bottom a bit to the right of the middle of the sheet

glad zenith
# vernal crest Maps/springobjects

Tysm! also do you know of any resources where you like search an item up and it shows you where it is in the unpacked content folder? Or something along those lines?

rancid temple
#

!springobjects has a page but there's nothing for like the whole content folder

ocean sailBOT
#

Most vanilla object sprites are in the Maps/springobjects asset. See a table of springobject sprites by index.

Some newer object sprites are in TileSheets\Objects_2. You can check the entry in Data/Objects to see where its sprite is stored; SpriteIndex is the position, and Texture is the asset name (defaulting to Maps/springobjects).

vernal crest
#

Ooh there's a cursors page too now

lucid iron
#

say is there some kind of projectile data model

vernal crest
#

But otherwise no, it's just mostly about skimming the png files in Content (unpacked) and getting a feel for what groups of stuff go where so that when you're looking for a specific item you at least know what sheet it's probably on.

lucid iron
#

or do all things just hardcode their projectile

rancid temple
#

Not sure about other sources of projectiles

lucid iron
#

it looks like monster ones are hardcoded at least

#

and hm the weapon one doesn't support debuffs

weary oyster
#

Hi guys my friend and I just made a mod where it'll draw the shortest path to a container with a specified search item so you wont spend all of your time looking through chests for an item!! It would be greatly appreciated if you guys gave it a look :D
https://www.nexusmods.com/stardewvalley/mods/27409

Nexus Mods :: Stardew Valley

This Item Locator mod will draw the shortest path on the player's screen to the nearest container containing an item that the player needs to find.

lucid iron
weary oyster
#

I would love that :D

lucid iron
#

what do you want to put in the message? i can just copy your comment

weary oyster
#

ya u can just copy my comment

#

thank you!!

lucid iron
#

hm i noticed that the mod page says Used Generic Mod Config Menu API from spacechase0 under permissions

#

you should instead add that as a dependency, so that people will be prompted to download that

nocturne field
#

Okay so now when i try to play with the build of the mod i made it throws this error

#

i'm honestly gonna call it a night and continue tomorrow

#

i AM making progress.

#

so hopefully i'll get to the bottom of this lol

thin hamlet
#

Is a TCC abbreviation currently in use?

#

I wanna park Toni’s in front of Crystal Clear to avoid obvious confusion between CC and CCSDVpuffersquee

haughty charm
#

I don't think so, Toni!

#

!acronyms

ocean sailBOT
vernal crest
#

I searched Nexus for TCC and nothing came up

thin hamlet
#

Looks like im good then!

#

yœnk

lucid iron
#

TCC isnt very pronouncable

thin hamlet
#

Ehhh fair

lucid iron
#

perhaps you should make up some word instead Bolb

thin hamlet
#

TCC to TNF?

#

Toni’s Crystal Clear to Toni’s Nerd Fest SDVpuffersquee

#

I’ll think of smthn

glad zenith
lucid iron
#

you can just post it on nexus first

#

apply for role

#

and then come post for mod showcase

thin hamlet
#

👆

glad zenith
little crag
#

Hi, unsure if this in supposed to be in here but my gifs aren't uploading correctly on Nexus; if this a common problem?

lucid iron
#

nexus cdn can be slow

#

today seems like a bad day for nexus in general

little crag
#

Ah okay

haughty charm
latent mauve
#

Friends, can someone more familiar with the intricacies of the game code tell me exactly what happens to the map on house upgrade? Upgrading the house fixes my weird issue just like reloading the save does, so if I can replicate that behavior when the config options change, I may be able to keep the cellar and spouse room from disappearing.

#

Mainly need to know if it is completely reloading the farmhouse map again so that my patches can apply after it, and if so, I will try to figure out how to make it reload the vanilla map on config change before my own patches start

#

That would likely fix all the empty spouse room issues if it's just a matter of reordering the patches

lucid iron
#

what does l 2 mean in recipe unlock condition think

lucid iron
latent mauve
#

I specifically meant the upgrade levels (kids room, cellar, etc) for whether or not the map gets fully reloaded

rancid temple
#

l 2 isn't used so it defaults to null basically

#

Essentially you can take it to mean it's a recipe learned through the TV

lucid iron
#

oh this is crafting recipes, and yea it seems to be quest/mastery only

rancid temple
#

Oh, crafting, yeah then whatever means is chosen for those specific recipes

#

Cooking is usually done on the TV but I can't remember how crafting recipes are generally given lol

lucid iron
#

so game never rebuild house from the base map, except on save loaded maybe?

rancid temple
#

Well, the upgrade from farmhouse to farmhouse1 is a full map change

#

As well as farmhouse1 to 2 and the marriage variants, all the renovations are just map patches

latent mauve
#

And I was only able to clear it through reloading the save otherwise

rancid temple
#

Honestly, your best bet is probably just reloading your save

lucid iron
#

i guess it does maybe think

latent mauve
rancid temple
#

What is the visual issue?

lucid iron
#

FarmHouse.setMapForUpgradeLevel

#

i mean can't you just limit your gmcm to main menu only

rancid temple
#

Is that something CP mods can do?

lucid iron
#

oh right, idk blobcatgooglyblep

latent mauve
# rancid temple What is the visual issue?

I have two variants of my map, one is the renovation and one is a map patch. Swapping them via config while in game removes the entrance to the cellar and makes the spouse room appear empty

#

I can also cause it to happen by using patch reload

#

It's consistent, happens every time

rancid temple
#

Yeah, FarmHouse doesn't appreciate some patching during regular runtime

latent mauve
#

IF I can force the CP mod to lock config to main menu, that works too, but I don't know how to do that

rancid temple
#

I don't think you can with CP, pretty sure that's also a C# only thing

latent mauve
#

Yeah, hence me trying to find a workaround

rancid temple
#

I think the workaround is make a C# element unfortunately

latent mauve
#

I'm currently messing with priorities but I don't think it will help

rancid temple
#

I think the problem is that patching the FarmHouse causes it to lose your renovations and those aren't reloaded on the fly

latent mauve
#

My renovations didn't vanish at all

#

Only the cellar and spouse room

#

That's why I am lost, LOL

rancid temple
#

Oh, those are technically renovations, I didn't know all your others stayed though

#

At least, they're patched on like renovations

latent mauve
#

Yeah, everything else is fine, including my custom renovation

rancid temple
#

Maybe they would stick better if they were actually like the rest lol, that's kind of annoying

lucid iron
#

Why do you need option to swap between reno vs map patch

#

What if you just make reno 0 cost

rancid temple
#

You could just make it a separate mod file I guess

latent mauve
#

I do intend to remove it once 1.6.9 rolls out, it's because of the wallpaper and flooring change

lucid iron
#

Slacc on this mod until 1.6.9 then

rancid temple
#

Oh right, in 1.6.8 the custom renovations don't work

latent mauve
#

So patch mode will go away at that point anyway, BUT the issue happens with any config change, including one for a larger version of the room

rancid temple
#

Yeah, I've currently got one mod sleeping until 1.6.9

latent mauve
#

And I really don't want to make that a separate reno xD

#

I will if I have to, but I didn't want to

lucid iron
#

May have no choice but to offer separate files then

rancid temple
#

Though that's mostly just because I don't want to rebuild it against 1.6.8 now lmao

latent mauve
#

I'll give it the corner room treatment only if I absolutely have to

rancid temple
#

I can poke the code, but I don't think I'm gonna find anything that can help a CP mod

lucid iron
#

I am slacc on some ideas but they r like

#

Still just rotating in my brain, not implemented

latent mauve
#

Fair enough rokugin, I'm mostly just very curious as to why it fixed during cellar upgrade

lucid iron
#

Since I discovered that trinket slots was gonna be more work than "just spacecore lol" I was gonna make trinkets combinable like rings

#

Combined rings r so weirdly implemented tho think

latent mauve
#

Soooo, secondary idea: if I make a Reno that's upgrading the bathroom size, can I completely change the map patch used to replace the smaller bathroom it starts as?

#

Or does it have to be a separate map space?

rancid temple
#

I think the problem with that would be the original renovation and its flags

latent mauve
#

Hmm

rancid temple
#

I guess you could use some additional flags to set up some When conditions to stop patching the renovations menu with those?

lucid iron
#

I think you should do it like the open/close room renos

#

Which is additional patch on top

#

Not replace

rancid temple
#

That's what the current bathroom is, but if you wanted to upgrade the same space the original renovation would need to be dealt with

lucid iron
#

Can't u just block out the expand space only

latent mauve
#

Can the build rect and the map area be different dimensions?

rancid temple
#

I'm more worried about the renovation menu

lucid iron
#

Every renovation is remove the walls somewhat, just degree of it

latent mauve
#

Ah, the menu could be handled the same way I have the Destroy option added

rancid temple
#

And how you'll differentiate when the upgrade should be available and how to get rid of the base renovation from the menu

latent mauve
#

Which is a When condition

lucid iron
rancid temple
#

The upgrade should initially only be available when you have the base bathroom, but what if you want to destroy the bathroom, do you have to downgrade first and then destroy?

lucid iron
#

The dining room one in particular

latent mauve
#

That was my thought, yes, roku

#

Force downgrade before removing completely

rancid temple
#

I forgot about the patches to open and close the rooms, I was confused because the renovation menu uses that same terminology everywhere

#

When it actually means build and destroy a room

latent mauve
#

It's also used for the corner room expansions

vernal crest
#

Yeah lol

#

diningroom_open vs diningroomwall_open

latent mauve
#

Could maybe check how those work for removal

rancid temple
#

So yeah, you should be able to patch directly over your bathroom with just a bigger patch

latent mauve
#

Corner room is three expansion steps

#

Okay, then I will give that a go

rancid temple
#

Oh yeah, man, I totally forgot about that lmao

#

I think I've upgraded my house fully in 2 games and completely forget about it after

latent mauve
#

I remembered because I considered replacing the last corner expansion step with a half bathroom over there xD

#

As an optional prefab room

rancid temple
#

Oh, there's a debug command I guess

latent mauve
#

Okay, yeah, remove corner room requires that the two values for the extended corner pieces are 0

#

So standard operation seems to be downgrade before room removal and I have a ready made example 🙂

old edge
#

hello

rancid temple
#

I don't have any good "hello" emojis, so you get a junimo

latent mauve
#

Thanks for helping me look into options, rokugin, and thanks for brainstorming with me, chu/e! It's appreciated.

warm egret
#

im trying to use harmony like this:
harmony.Patch(
original: AccessTools.Method(typeof(StardewValley.Monsters.Monster), nameof(StardewValley.Monsters.Monster.findPlayerPriority)),
postfix: new HarmonyMethod(typeof(MonsterPatches), nameof(MonsterPatches.findPlayerPriority_Postfix))
);
however, this code reports an error because findPlayerPriority is a protected method instead of public.
how can i solve it?

rancid temple
#

This is how I'm doing it for fish ponds

#

I have a using StardewValley directive at the top, hence why it's not in my method finding thing

#

I believe you're just using reflection to try to find a method named that

warm egret
#

ok, I'll try using a string directly instead of using nameof. In addition, in multiplayer games, which player does Game1. player represent?

old edge
#

ok I'm implementing a new feature that will switch the player from swimming state to normal state when defeated while swimming. So far the code builds and in my in-game testing. I get a black screen

rancid temple
#

Should be the current player

#

I'm guessing the master player if in split screen?

lucid iron
#

There's special case for split screen coop

#

Player gets swapped

#

Can lead to shenanigans, I rmbr in support someone was getting massive amounts of exp every second due to a mod that add rings with skill exp mult

old edge
#

yup lot harder than I thought.

teal bridge
#

Game1.player is literally "current player" and in co-op the entire game loop is run for every player on every frame. If you're concerned with co-op play at all then you need to make sure any player-scoped state is PerScreen, and then you don't really need to worry about who Game1.player is, just treat it like single-player.

old edge
#

now they frozen

rancid temple
split ermine
#

im using button's extra trigger action stuff and am following an example, this should work right? dont know what to put in the "ExampleTriggerAction" fields though

inner harbor
#

I've discovered a quirk with conditions, I think? I currently use Weather conditions to turn the spouse room windows dark on rainy days, and it works when one logs into the game for whatever the condition it is at that point, but it doesn't reapply the condition daily. { "Action": "Load", "Target": "Maps/Lemurkat_EastScarp_SpouseRoom", "FromFile": "assets/Maps/SpouseRoomsEastScarp.tmx" }, { "Action": "EditMap", "Target": "Maps/Lemurkat_EastScarp_SpouseRoom", "FromFile": "assets/Maps/SpouseRoomsEastScarp_dark.tmx", "Update":"OnDayStart", "When": { "Weather | contains= Rain, Storm, GreenRain": true } }, This is the code - I addd in the "Update":"OnDayStart" to see if it made a difference, but it didn't. Are spouserooms different from anything else?

rancid temple
#

Changing with whatever I'm reloading

velvet narwhal
#
    "Id": "{{ModId}}_WarpMailer",```
split ermine
velvet narwhal
#

i just copy paste whatever i'm doing in trigger actions too

rancid temple
#

I try to make my keys pertinent to the thing they're for

#

Which can make them more or less descriptive depending on what I'm actually working on

velvet narwhal
#

mine are sometimes puns just incase i get a funny error at least i get a laugh SDVpufferrise

rancid temple
#

Lmao, you can also use LogName for that :P

rancid temple
split ermine
#

also would i just copy paste the trigger actions like this?

rancid temple
#

So in order to get the windows to change, you need to apply those tile changes to the farmhouse instead, which might cause issues lol

velvet narwhal
rancid temple
#

As I've been discovering lately, FarmHouse doesn't like to be patched very much

inner harbor
#

Drat... why do the farmhouse window changes but the spouse room ones don't? I don't think they even do in vanilla.

rancid temple
#

I think maybe the windows were abandoned because not every spouse room has them?

inner harbor
#

night and day tiles could be used for it but I tried that as well and it didn't work

velvet narwhal
#

each codeblock is it's own "entry"

inner harbor
#

I removed most windows from spouse rooms, but I need on in Jasper's for story purposes

velvet narwhal
#

iirc spouse rooms don't "refresh" as per the previous issues with uh, firered

rancid temple
#

You can do Aba's hack

inner harbor
#

what's Aba's hack?

#

I could switch the tilesheet it uses

rancid temple
#

Manually patch the spouse room then patch the farmhouse with the spouse room conditionally

inner harbor
#

I imght try a custom tilesheet

velvet narwhal
#

and then have that tilesheet have an animated window? SDVpufferthink

rancid temple
#

I wish you luck, my attempts to cheat the system were thwarted by FarmHouse being a punk

velvet narwhal
#

farmhouse needed pathos' touch for wallpaper eating

rancid temple
#

Still not entirely sure why it wasn't recognizing the walls_and_floors tilesheet as the walls_and_floors tilesheet for that issue honestly

inner harbor
#

oh yeh that's what I was trying to do first, and why I looked at your mod I think, but it confused the heck out of me.

#

I'm tryinh to work out how to do it with the minimal amount of fuckery

rancid temple
#

Like as far as I could tell, it was supposed to compare the source of the desired tilesheet with the expected tilesheet and they should have been the same, and yet

#

For vanilla renovations it had no problem, but if you used a custom map suddenly that wasn't okay

#

It's fixed in 1.6.9

velvet narwhal
#

SDVpufferclueless i take it back, i enjoyed doing all of my editmaps in content patcher, it's a mess in there now but at least i can add locations on the fly without worrying about the warps

latent mauve
#

I have decided that FarmHouse patches lead to madness

velvet narwhal
#

viewport is also a lesson in insanity

split ermine
#

do i have to add a comma after the false

wise berry
#

No, but you do need to add a closing brace and remove the following stuff up to "{{ModId}}_ReloadBeetPrice"

uncut viper
#

if it makes it easier for you, you can also put multiple actions in one trigger action entry

wise berry
#

Mmhm, just make sure you put commas between them all too

uncut viper
#

instead of this:
"Action": "Spiderbuttons.BETAS_ReloadItemField (O)274 Price",
you can instead do this:

"Actions": [
  "Spiderbuttons.BETAS_ReloadItemField (O)274 Price",
  "Spiderbuttons.BETAS_ReloadItemField (O)300 Price",
  "..."
]
jagged violet
#

hi! does anyone know which xnb files are scarecrows in?

split ermine
#

wait i should change that field..

inner harbor
#

haha it appears to have worked

uncut viper
split ermine
uncut viper
#

you can name that whatever you want

#

(also remove the double quotes though)

split ermine
#

icic ty

#

still skeptical if that's the actual ||broccoli|| id

split ermine
#

do i put a comma after "Price": 205 ?

final arch
#

you can, you dont have to

final arch
#

I suggest to use VSCode and set the filetype on the bottom right to "jsonc", then it'll yell at you when youre missing a , or you have one too much

#

!vscode

#

k no command for it SDVpufferpensive

#

!vsc oh there it is

ocean sailBOT
patent lanceBOT
#

@calm nebula: poke this (36h ago)

hallow prism
#

in theory, if i want a dialogue to change based on if it's raining in PT but i'm checking that in another location i can do a Weather Mountain Rain for ex? (can use Town, but i'm not sure if Town will be checked properly on festival days, which arent rainy of course, but still)

patent lanceBOT
#

@calm nebula: take a look (24h ago)

calm nebula
#

Meow

#

Angry hiss

finite ginkgo
#

Never knew you were a cat, good to know

calm nebula
#

I'm a cat with a power drill

#

Please consult the avatar 😛

finite ginkgo
#

No yeah that does sound like you

#

and the avatar checks out

royal stump
dense jolt
#

Is there an easy way to get an extra collections tab 😅

hallow prism
#

thanks 🙂

surreal trout
#

Hi guys, I designed a metro system with several lines connecting Pelican Town, the Desert and Ginger Island in the game, just for fun. I posted the metro maps online, and some people told me they wished to have such a mod. But hardly do I know anything about coding or mod design, so I wonder if any mod-maker is interested in this topic.

I’m thinking about a mod similar to the current minecart system but with a time-lapse mechanism when traveling (rather than real-time teleport), and a fare system that charges you some golds according to the distance you travel.

Metro maps are posted below. If you got any idea, feel free to reach out to me. Thanks!

lucid iron
#

Oh I seen those maps I think Bolb

#

Adding minecart is straightforward, see mods like integrated minecart

#

Adding time delay, and possibly an animation, is C# territory

naive wyvern
#

there might also be the possibility that should the mod ever get popular, people will ask for train systems for other expansion mods (maybe, highly likely 🙏 )

lucid iron
surreal trout
surreal trout
#

Also, I'm so bad at programming. I once spent several months learning a Python class in university, but I could only rely on AI models to write codes now. I don't have the confidence to learn another coding language at all

lucid iron
#

Well uh don't use ai for modding stardew it'll hallucinate bolbonfire

#

I think as a first step you should try just making the subway as minecarts

#

This you can do with just content patcher

#

!unpack

ocean sailBOT
#

Follow this guide to unpack the game's content files in order to see and explore how the game data is structured.
It's helpful when making your own mods, or just to learn about how the game works!

lucid iron
#

Data/Minecarts is what you gotta edit (with EditData)

surreal trout
lucid iron
#

oh yea u can make minecarts cost money Bolb

#

i dont think you could make it dynamically cost more though

rancid temple
#

Dynamically in what way?

hallow prism
#

yeah maybe some stuff can be done with token, so it depends which kind of dynamic

calm nebula
#

Like how the Beijing metro works I assume

lucid iron
#

yea chinese metros increase fare if you go farther

calm nebula
#

(If you didn't know, you pay more the more stops you want to go.)

#

I love the little fake blue coin you get lol

lucid iron
#

lots of north american metros just charge u flat rate for 2hrs free transfers

surreal trout
#

the amount of gold it costs is related to the distance you travel

#

like if you go from town square to ginger island, it would cost a lot more than to the mountains

lucid iron
#

so unfortunately i dont think that is doable with the minecart system currently in the game

calm nebula
#

I think you can add different fares?

#

Can you not

#

Or is by destination

rancid temple
#

I think it's just by entry in the list

lucid iron
#

it looks like just destination yea

#

only verticies data no edge data

calm nebula
#

Interesting

surreal trout
#

I think it might be possible by listing all travel routes in the code, and give each route a fare value

lucid iron
#

graph theory by beloved

#

the menu would become really long if you do that monS

surreal trout
#

Thanks to NetworkX, the job of listing all travel routes and their fares can be easily done

surreal trout
lucid iron
#

no but you cannot like, restrict the menu options depending on your station

rancid temple
#

I mean, you could use When conditions and Update to change the price depending on the player location

lucid iron
#

so you would get ginger island port for 1000 as well as ginger island 100

calm nebula
#

Usually you go in and you aren't charged again until you go out

#

"M.T.A.", often called "The MTA Song", is a 1949 song by Jacqueline Steiner and Bess Lomax Hawes. Known informally as "Charlie on the MTA", the song's lyrics tell an absurd tale of a man named Charlie trapped on Boston's subway system, which was then known as the Metropolitan Transit Authority (MTA). The song was originally recorded as a mayoral...

rancid temple
#

Rather than the minecart list being long, the patch list would get pretty long lol

lucid iron
#

yea monS

#

well as mentioned, one feature at a time

#

put yer minecarts in first

#

the fancy stuff comes afterwards

rancid temple
#

Arizona doesn't have a real metro, our public transit is either single ride fare, all day pass, or multi day passes

#

On the other hand, our public transit is absolute dog water

surreal trout
#

I'll do the basic minecart locations first

lucid iron
#

Rokugin's suggestion will prob work, just a lot of tedious writing out all prices

rancid temple
#

SDVpufferblargh You could also make the destination patches conditional to where you're at, if you wanted to lose your mind

surreal trout
rancid temple
#

SDV thrives on simplicity, I think the more basic you can make it while still capturing the essence of your idea the better

surreal trout
#

@rancid temple It's able to write out all routes and prices via the Dijkstra Algorithm. But I know nothing about what's next

hallow prism
#

and keep your sanity if you need to change stuff and all

rancid temple
#

(so too does motivation to complete a project, for that matter)

#

Using a tool to handle the destinations/prices isn't really the part I would be concerned about lol, there's nothing you can use to convert that to a working mod for you, that's going to be all manual work and the more complicated it is the harder it's gonna be to get it to work properly

#

Well, nothing but money I guess, assuming you can find someone willing to do the project for commission anyways

surreal trout