#making-mods-general

1 messages · Page 341 of 1

uncut viper
#

you dont need C#

calm nebula
#

I have the bad habit of going "if a dumbbass like me can do it it has to be stupid easy right"

rough lintel
#

what you do is hard LMAO

#

i start crying as soon as vs opens up bro

#

“i can do this in 5 minutes” it will take me five years 💔💔💔

rigid oriole
#

But you will have done it

daring skiff
#

I will give you back your brain cell, Lani.

rough lintel
#

im still going through that players guide to c# book i got tho

#

its helping … a little bit

daring skiff
#

Just do what I do and annoy your friends to walk you thru everything.

rough lintel
#

i did that already HAHAHAHA

tender bloom
#

ive seen you write a c# mod

rough lintel
#

in this instance i had to “draw the rest of the owl”

daring skiff
#

All of my collabs are "here is how I think the code should work, please help me make this".

rough lintel
#

and i could not draw it. i got the circles tho

rough lintel
#

that alone took like 5 hours

tender bloom
#

but you did it!!

lucid iron
#

Lani when construction prices mod

rough lintel
#

NEVER CHU

#

its too hard chu… i cant do it…

rigid oriole
#

I've effectively shelved mods that I could write the code but not the content for so the reverse side of the coin is true too lol

daring skiff
#

But think of how powerful you'd be.

rough lintel
#

ill pay chu to finish it for me

lucid iron
#

NoU

rough lintel
#

the chulani collaboration

rigid oriole
#

Im technically capable of the events and dialogue but I dont know what to write 😭

lucid iron
#

I desire your suffering and subsequent growth it's like shonen anime training arc

#

Putting u in the hyperbolic time chamber rn

daring skiff
#

This one C# mod I'm working on definitely took me, like, 2 weeks that I'm sure everyone in here could make in 20 minutes.

#

I'll get there...

lucid iron
#

Oh do u still need the cue to be swapped

thin plover
#

I've run into an issue modding a map that I haven't encountered before. I moved some things around, notably on the back and buildings layers, but the Greenhouse was in the way at the time, so it overwrote portions of the map. I've moved the greenhouse out of the way, but the portions it had overwritten continue to be gone from the map.

I've restarted the game multiple times, warped out and back, replaced the modded map with a temp copy, duplicated and replaced each layer, but no matter what, I can't get these portions of the map back, it's just a void.

Any ideas?

calm nebula
#

The greenhouse overlay

#

Did you add it as a new farm map or are you overriding an existing farm map

thin plover
#

{
"Action": "Load",
"Target": "Maps/Farm_FourCorners",
"FromFile": "assets/Farm_FourCorners.tmx"
},

#

I guess the spot that is void was the default location of the greenhouse

calm nebula
#

Yeah okay

#

There is a default greenhouse overlay you'll also need to override for that

daring skiff
#

I don't need it to be swapped but it's one of the ones I would like to be swapped.

#

I should probably just come up with a list.

#

Have an idea for a big misc audio changes mod, for all of the stuff I don't think makes much sense to upload individually.

lucid iron
#

If you be making a farm mod just make new farm type no replace

#

Even if it's literally just a tweaked version of a vanilla farm

thin plover
#

Do you happen to have a link handy to documentation on that or examples that I could reference?

lucid iron
thin plover
#

thanks

golden basin
#

@lucid iron so like maybe like a framework to make interactive holdable books that when activated will display pages?

lucid iron
#

Hm like a menu of some sort?

golden basin
#

Yeah I was wanting to make mockup educational books

lucid iron
#

Existing possibilities for this include MEEP (no pagination tho) and spacecore guide books (elaborate but very stronk)

golden basin
#

Like how Skyrim has readable books

brittle pasture
#

spacecore's guidebook and trigger action on use

#

ah chu beat me

golden basin
#

I couldn't understand spacecore very easily

lucid iron
#

I did literally want to make this mod though, a series of stardewui menu widgets for content modders Bolb

golden basin
#

I can definitely try though

lucid iron
#

But yeah imo if u don't care too much about the shape, perhaps letter tile action is sufficient?

stark spindle
lucid iron
#

I was thinking of making a version of that which will actually parse letter syntax so u can use bg

lucid iron
golden basin
#

See I really wanna add like photos too

brittle pasture
golden basin
#

I'll try spacecore for sure though

tiny zealot
lucid iron
#

Ichor assigned task of making secret note tile action

brittle pasture
lucid iron
#

You can also just ask desty/axell clown

brittle pasture
#

ah yeah forgot s&s has that too lol

lucid iron
#

s&s has the ur example of book

thorny dagger
lucid iron
#

Idea is that content modders get to define functionality and i do all the fun glue stuff

rigid oriole
brittle pasture
lucid iron
#

So they might give a item query and i would display every item in a grid

#

This is like 2026 project and i rather point clown to existing solutions first

stark spindle
tiny zealot
#

also, migrate to where? and how convince entire user base to follow you

lucid iron
#

Should we open a thread for nexus things blobcatgooglyblep

golden basin
#

There's no reason to think so ppl are spooked

lucid iron
#

It's not very relevant to helping ppl out with modding i feel, but it should be discussed

stark spindle
#

sorry my bad, i was just curious

balmy venture
#

your idea is amazing Fellowclown

lucid iron
#

It's not directed at u dw

balmy venture
#

I'd download the mod for sure

brittle pasture
#

yes

rough lintel
#

modding is so enjoyable to me pls dont make me rage for my shonen arc 💔

brittle pasture
#

if it's any consolation I may or may not get into portraits eventually and I too will enjoy the upcoming shonen arc

lucid iron
#

Next time on Making Mods G

fading walrus
rough lintel
#

next time on making mods general….. lani meets up with an old foe, the carpentermenu! a battle ensues! who will come out on top?!

meanwhile, selph is preparing to beat an opponent they’ve never encountered before… is selph strong enough to best them? FIND OUT IN THE NEXT EPISODE OF MAKING MODS GENERAL!! /j

fading walrus
#

ModDrop is still bleh, CurseForge has a theft problem

In theory we have the official forum but it doesn't seem to get much traffic?

rough lintel
#

pretend thats said in the Anime Announcer Man Voice

brittle pasture
#

the forums is also a rather terrible platform for file hosting lol

rough lintel
fading walrus
#

Ye

thorny dagger
#

Actually only github is a realistic alternative for nexusmods.

rough lintel
#

back in the olden days there was some chucklefish posting…

fading walrus
dusky marsh
#

Why people dont like curseforge?

rough lintel
#

many reasons

fading walrus
#

Not suited for stardew modding imo

From an author's perspective, they're not good at protecting authors from people stealing their mods and reuploading them

rough lintel
#

primarily i dont think its built for something like stardew

#

yeah

#

what quillimus said

#

curse and minecraft are best friends. curse is friends with nobody else however

lucid iron
#

Nexus Platform Changes & other Mod Hosting Talk

#

I bread

blissful panther
#

You know, not a bad idea. SDVkrobusgiggle

fading walrus
# thorny dagger Actually only github is a realistic alternative for nexusmods.

Any similar service, for that matter
Gitlab, Codeberg, pick your poison

However, for authors that don't want to cc their media/creative assets, it's not a very good option, especially if the platform in question mandates open sourcing rather than simply source available

I'm having this conundrum with Codeberg at the moment, myself.

rough lintel
#

Bread

#

i like how peace has their FS github set up with the little io website to show all the mods

#

idk if itd be possible to make something like that that just links to hundreds of peoples repos though

fading walrus
#

Github Pages is great
Admittedly not keen on continuing to use Github though, I must say

rough lintel
#

big ol Mod Gallery

thorny dagger
balmy venture
#

what are unofficial mod updates btw?

fading walrus
#

Unofficial updates are exactly what they sound like
Updates done unofficially by people other than the author

lucid iron
#

In context of sdv, it's updates to some mod that broke bg game update by someone besides the author

balmy venture
#

but like, if the mod is open source, can't they post on nexus?

#

I've seen some updates on nexus and some not so I'm a bit confused

blissful panther
#

If the license allows for it (which it would if it's open source), definitely!

#

Though we do tend to... err more towards caution in Stardew modding.

fading walrus
#

Atp the forum thread is convention, too

blissful panther
#

Less strictly following the legal, more following the "will this confuse things for the author if we release an update on a new page and they come back to update it themselves?"

lucid iron
#

Yeah rn it's usually forum thread or gh releases

#

It's also worth noting that these happen more often for c# mods than npc

blissful panther
#

I'll get that Stardew GitHub action fully streamlined and released for others to use relatively soon, hopefully.

balmy venture
#

I see

#

I asked cause I was searching for a mod that was removed to see if there was an unofficial update and it seems there isn't. So probably because it was not open source

blissful panther
#

Which mod was it?

balmy venture
#

sec

#

(DGA) Asters Buildable Kitchen

#

this, I was checking if it did what I wanted

brittle pasture
#

that sounds like a content pack

balmy venture
#

ya I was searching for buildable vanilla counters and cabinets that match the vanilla kitchen

#

amazingly enough there doesn't seem to be one so I might make them myself

fossil osprey
#

I think Kisaa (crystallinerose on nexus iirc) had made a buildable kitchen mod too, you could see if it suits you

lucid iron
#

Fwiw i think it should be not that hard to make furniture that directly use the vanilla tiles

balmy venture
#

yup that's why I'm gonna try

#

I was just making sure it hasn't been done before. It seems within my ability to learn and do it

#

and it'ssomething I can post and share on nexus since my path packs I couldn't haha

green patrol
#

Question because I'm not 100% sure how to do this and I'm not finding too much data on it: how do you implement translations for options added by the GMCM?

#

I've got them into tokens in default.json, but when I try to set them as the display name and description and all that jazz in content.json, it just displays the token name not the token's contents

brittle pasture
#

you shouldnt need tokens

#

what's your code like

green patrol
#

one sec gotta wait for vs code to load >_<

calm nebula
#

You name them in a specific way

green patrol
#

oh

#

...somehow I missed that file...whoops

#

ty

pseudo vault
#

So I'm a bit desperate... I was trying to port Harvest Moon DS foreagables but when I try to have more than one inside my content.json, it always errors out. I am not a programmer (and frankly don't really understand tutorials for them) So I was trying to use another mod as a base. After messing around with it for a few hours, I give up trying to figure it out myself, could anyone help me and tell me what I am doing wrong? (I also don't know how to post it since I'm new here.)

brittle pasture
#

!json

ocean sailBOT
#

JSON is a standard format for machine-readable text files that's used by Stardew Valley mods.

If you need help with a JSON file, you can upload it to smapi.io/json to see automatic validation and share the link here.

When making mods, it's recommended to edit your files in a text editor with JSON support, such as VS Code, Notepad++, or Sublime Text. These programs will check for syntax errors.

brittle pasture
#

!startmodding also I recommend starting from the basica (the content patcher guide)

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
#

make a simple mod, get it to load first, then you can resume on your own mod

#

starting right in middle of another mod would be mightily confusing

pseudo vault
#

I made a few Crops before.

#

The issue now is the forageable.

brittle pasture
#

I see, I assumed you're starting fresh

#

in any case post your code

pseudo vault
#

Uh... I never used the smapi website to check my json, what format do I use for it? It's a content.json so Content patcher I am guessing?

brittle pasture
#

yes

#

though it mostly doesnt matter

pseudo vault
idle lantern
#

As a player, would y'all prefer to have an NPC unlock chance 100%, but requires you to donate 60 artifacts - or make it a random low chance to happen?

brittle pasture
#

missing a bracket on line 37

#

it's resulting in the entry below being nested inside the entry above instead of its own entry

fathom hound
brittle pasture
#

it's clearer if your editor has auto indentation

idle lantern
#

Do they need ' "Action": "EditData",
"Target": "Data/Locations",
"TargetField": [ "Mountain", "Woods", "Railroad", "Forest", "BusStop", "Backwoods", "Forage" ],'

multiple times, or can they just list the entries under one Edit Data heading?

brittle pasture
pseudo vault
#

Oh... Cloudberry did it like that so I thought it was fine...

idle lantern
#

Would they need an action entry for each different target field?

brittle pasture
#

so your code is incorrectly formatted

idle lantern
#

Need double bracket here, like at the top of the image?

#

I'm using someone else's question as a chance to learn too, sorry! 🙂

brittle pasture
#

now you're missing an opening bracket

#

think of json as burgers, with {} being the top and bottom buns respectively, and all the entries inside being fillings
your problem is you stuffed a burger into another burger instead of having two separate burgers

#

or missing an opening bun and having an open air burger

pseudo vault
idle lantern
#

your other ones were right, so you've got it. The brackets are easy to miss

brittle pasture
#

ah darn sorry, I got confused because jierishi is asking questions using your code

idle lantern
#

sorry

pseudo vault
#

Oh oops

brittle pasture
#

okay one problem at a time

pseudo vault
#

Right I'll wait

brittle pasture
#

okay you need a }, above that { to close the previous entry

#

all your subsequent Action blocks are also missing the { bracket to open it

idle lantern
#

does your editor highlight the brackets by chance, so you can see the matching open/close?

brittle pasture
#

finally, that's not how you use TargetField, but we'll get to it

#

for now add all missing brackets and make sure the validator no longer complains

brittle pasture
#

every { must be closed with a } before you start a new Action block with a new {

pseudo vault
#

Was that at Jierishi? I can't tell sorry.

brittle pasture
#

it's to you

pseudo vault
#

It adds an underscore

#

I never noticed it

#

Maybe I screwed up the brackets in a different way now...

brittle pasture
#

definitely much better
I think you have one extra } at the end

#

and oh yeah you need a comma between "spring" and "fall" on line 129

pseudo vault
#

I missed it oops

#

Do I actually need to write it like
"Season": [ "spring", "fall" ] ? Or would
"Season": "spring", "fall"
work?

brittle pasture
#

former

#

lists must be inside []

pseudo vault
#

So maybe I used the wrong mod to learn from? It was the only forage mod to have one item that I could find.

idle lantern
#

Try Ridgeside Village

#

they have custom forage. It's a big mod

pseudo vault
#

Well uh... It's very big. If possible I'd like to learn from a small mod...

brittle pasture
#

well unless they literally shipped with broken json I'd rather say you missed stuff when editing

pseudo vault
#

The only error it had was the format being 2.0.0 instead of 2.7.0

#

But it does have
"TargetField": [ "Woods", "Forage" ], like this

brittle pasture
#

well yes, that's how you add a new entry to the Forage list in the Woods entry

pseudo vault
#

Oh. I misunderstood what the targetfield actually does, even after reading it many times...

brittle pasture
#

what you're doing is adding a new entry to Forage inside the Backwoods field inside the BusStop field inside the Forest field inside the Railroad field inside the Woods field inside the Mountains entry of Data/Locations

pseudo vault
#

Yeah I now understand it...

brittle pasture
#

yeah you need multiple blocks for each location

#

should be a simple copy paste

pseudo vault
#

In HM DS they can grow on any Field in the game, so I am not sure how to simulate that for SV

brittle pasture
#

don't do that, we use TargetField for a reason

idle lantern
#

okie dokie

brittle pasture
#

I believe that applies to every location

pseudo vault
#

Would this work?

brittle pasture
#

no, multiple action blocks each with its own TargetField

#

you'd need to duplicate Entries

pseudo vault
#

yikes

brittle pasture
#

annoying, but that's how it works

#

something something the content modder yearns for ForEach

pseudo vault
#

I'd say scary as I might mess it up

full bear
#

Any tips on how to patch a constructor using Harmony? I don't plan to do anything invasive, just have it toggle a switch on when the constructor is called, and toggle it off when the constructor finishes

#
using StardewValley.Menus;

[...]

harmony.Patch(
    original: AccessTools.Method(typeof(JunimoNoteMenu), nameof(JunimoNoteMenu)),
    prefix: new HarmonyMethod(typeof(ModEntry), nameof(JunimoNoteMenu_Prefix)),
    postfix: new HarmonyMethod(typeof(ModEntry), nameof(JunimoNoteMenu_Postfix))
);

I'm trying this but I don't think it's too happy with it

brittle pasture
#

AccessTools.Constructor

full bear
#

tysm! Didn't see that

idle lantern
#

is it every action within the event?

brittle pasture
full bear
brittle pasture
#

it's the second optional parameter of AccessTools.Constructor

#

hold up let me get an example

full bear
brittle pasture
#
    harmony.Patch(
        original: AccessTools.DeclaredConstructor(typeof(CraftingRecipe),
          new[] {typeof(string), typeof(bool)}),
        postfix: new HarmonyMethod(typeof(ModEntry),
          nameof(ModEntry.CraftingRecipe_Constructor_Postfix)));
pine elbow
#

ive learned more about modding today

#

also also it says i cant download sdk 6.0

calm nebula
#

First things first

#

Are you positive you need c#

lucid iron
#

I thought you just wanted to make a mexican food mod

idle lantern
#

that sounds delicious

pseudo vault
#

One of these days I need to port my HM DS crops to Content Patcher and then add the HM DS Recipes. I fear that day

#

I have no idea how badly I will mess up the crop port

lucid iron
#

Hey if it's 16x16 sprites it'll be ez

pseudo vault
#

I am more scared of how the new format is

#

Json assets felt so easy and doing the forageables now in Content Patcher was... well, very painful.

#

Thanks for everyone's help though

#

Now I just need to figure out how Litter works

#

I wanted to include the Weeds, Branch and Stone as well

#

But uh, first...

#

Is it possible to have two edibilities?

full bear
#

I think I have this mod almost done, whew

pseudo vault
#

In HM DS Edible items can have positive and negatives as well

#

Yellow for example hurts Stamina but heals fatigue (Which I made Health for SV)

brittle pasture
pseudo vault
#

oh oh. Do I need to redo the content json again?

pine elbow
#

learned more about c shapr today made an alternate loading screen for stardew progress

pseudo vault
brittle pasture
#

that's hardcoded. what spacecore allows you is to do it in content packs

brittle pasture
pseudo vault
#

Okay... Did I do it right for the manifest?

#

It doesn't seem to show me a mistake

brittle pasture
#

missing ] to close out dependencies before UpdateKeys

#

and delete the { before UpdateKeys

pseudo vault
#

Is this it?

#

It shows me an error if I don't add the comma

balmy valve
#

I require assistance with an event not continuing midway through, nor is it ending

#

No error messages are showing up in SMAPI

#

Here is the json aprser

#

parser

#

Nothing past Harvey leaving is triggering. he just warps away and then they sit there in silence for eternity and the only way to end the event is to skip

brittle pasture
pine elbow
#

making avocado mods made me hungry irl i want chipotle

balmy valve
#

real

#

Also, does anyone know if there is a precondition that states it must be x amount of days after having seen a certain event?

calm nebula
#

Conversation topics

balmy valve
#

fair, but i don't want to make unique dialogue for that i just want it on like a timer

round timber
#

you dont have to make dialogue

balmy valve
#

3 days after a heart event, a letter must be sent

calm nebula
#

You don't need dialogue

balmy valve
#

i don't?

round timber
#

you can just use the CT as a precondition

balmy valve
#

YIPPEE!

#

Thank you I have done that

#

Now

#

What about the event itself?

#

There is something wrong with it

balmy valve
#

I've tried looking online, but nothing seems to be amiss?

#

Everything before /move farmer 0 0 3 is fine

languid matrix
#

If you forget the "Price": field on your items, your item will sell for 0 gold.

#

Found that out when I was fishing for Water Moccasins.

balmy valve
#

rip

pseudo vault
lucid iron
#

Oh no you need a second edit

pseudo vault
#

Oh

lucid iron
#

I forget what the custom assets name was, something like spacechase0.SpaceCore/ObjectOverride?

full bear
#

sigh, my new mod has weirdness with bigger backpacks probably because of how it pokes the opcode

lucid iron
#

It's sorta like Data/Objects but managed by a mod instead of the game, so you need to Target different thing

lucid iron
full bear
#
public static bool hasOrWillReceiveMail_Prefix(ref bool __result, string id)
{
    if((storecall_JNM || storecall_Swap || storecall_draw) && id == "canReadJunimoText")
    {
        __result = true;
        return false;
    }
    return true;
}

trying to override for specific circumstances (ex: in the middle of a function call) and Bigger Backpacks is like "😎 nah"

lucid iron
#

Why r u doing this

full bear
#

or it might be another part of the code that's screwing up

full bear
#

it works great! just without bigger backpacks.

lucid iron
#

Why not just give people the mail then

#

Is that insufficient

full bear
#

I only want people to be able to "preview" the bundles from their inventory

lucid iron
#

Hm ok, i find it suspect that u r patching the method checking mail instead of the place that call this method tbh

full bear
lucid iron
#

Transpiler

#

You can mass patch it with Repeat or just a for loop

pseudo vault
lucid iron
#

Yeah it's gotta match the key

full bear
#

looks like a pita

balmy valve
#

i would also like some help whenever you can

balmy valve
lucid iron
#

No it's a pretty straightforward pattern

#

Ldstr "mail" then Callvirt

full bear
lucid iron
#

You can do whatever you want obviously but i vote for transpiler here

languid matrix
#

I made Organism 46B sell for 50 gold less than the Lava Eel at normal quality but unknowingly made it ridiculously common and easy to catch for its size and price.

balmy valve
#

The event will just...freeze halfway through?

#

Harvey leaves and everything goes to crap

#

Avg harvey moment

uncut viper
# full bear I'll take a look into transpiling, thanks a lot

harmonyextensions also has an extension method for transpilers that you use on a list of codeinstructions thatll already do the work of replacing every method call found in a function with a different one. you could do this transpiler in one line + a custom method that just returns true, if thats the only way "hasOrWillReceiveMail" is used in this draw function

full bear
#

thanks a lot! will check this out

uncut viper
#

heres an example

#

you dont have to use RuntimeReflectionExtensions idk why i did

calm nebula
#

We were wondering if it was faster to get the methodinfo that way

#

Button

uncut viper
#

yeah but i benchmarked it first and found out it wasnt

#

so idk why i did it again for that one

lucid iron
#

Fengshui

balmy valve
#

Is everything working out?

lucid iron
#

Who is that question directed at?

uncut viper
#

semi-relatedly but what is an infix, i see in Harmony's recent(ish) commits that theyre working on an implementation of those?

#

iveh eard the term before but have no memory

balmy valve
#

I'm gonna try to fix the event on my own first though

#

Will update as time passes

full bear
#

okay, my solution is disabling bigger backpacks yes yes

uncut viper
#

like... the whole mod?

full bear
#

yeah, my mod mostly for personal use

lucid iron
uncut viper
#

if its for personal use why not just.. uninstall bigger backpacks

balmy valve
full bear
lucid iron
#

Worst case you don't get an answer now so just bump it

full bear
#

like turning off the mod on my side

lucid iron
#

Cus rn idk what u asked

uncut viper
#

ah, okay

balmy valve
#

HANG ON i think it's working now

uncut viper
#

i was worried you meant using your mod to disable the other mod if it detects its installed

uncut viper
#

okay carry on then SDVpufferthumbsup

full bear
#

but definitely working around a mod which pokes the instructions directly is 😭

lucid iron
#

So hm ik bigger backpack does a lot of elaborate patches to make it show 4 rows

full bear
#

doesn't even matter if I put bigger backpacks first, last, in the middle

uncut viper
#

out of curiosity, which .draw function is it exactly you want to patch?

full bear
lucid iron
#

Hence why i was like "custom backpack framework" which doesn't do that and just let you scroll

#

It's just using older approach of how2 do transpiler

#

The thing we r recommending u to do is exactly this but packaged nice lol

full bear
#

yeah, I'll look into transpilers later

#

once my brain is less fried

lucid iron
#

I have suffered from bigger backpack woes as well and usually there's nothing to do besides hardcode some offset to match SDVpufferpensive

full bear
#

hey, I can now preview bundles before unlocking them, so I'm happy

#

no more getting blindsided by bundles added by mods

pseudo vault
#

I am back for more suffering. I now need to figure out the context tag for the Mine and how to add an item to the Mine digging/tilling list. It's because of the Black Grass, it can only be found in the mines in HM DS, when digging/tilling. Alternatively, maybe I should make them forages for the mine similar to Quartz and Mushrooms.

full bear
#

nevermind that the buttons seem to be a little... off for some reason

balmy valve
#

I figured out the issue with my event! The farmer can't use move commands to rotate, they have to use change direction commands

lucid iron
#

maybe you can make them item extensions nodes?

uncut viper
#

should try adding to the ArtifactSpots field of Data/Locations:UndergroundMine first

balmy valve
#

Funny story

#

So, to make NPCs disappear, I warped them to -999 -999

#

In this event, I did that with Harvey

#

But because this event has a fade to black and i need to keep it black while I rearrange everything, I had to move the viewport

#

So I moved it to my usual place of "nothing": -999 -999

#

So

#

Whenever there was a fade-out

#

Harvey would ominously appear on screen for a few seconds

#

How do I make a door open in an event

#

Like an interior door

#

Right now Alta just....phases thru the door

rough lintel
balmy valve
#

Ok!

calm nebula
#

Anything else

#

/g top_hat would probably parse as not male

balmy valve
#

DANG IT

#

NOW I WANT TO ADD SYLVIA AND ROWAN INTO THE MOD TOO

#

SO I CAN HAVE ROWAN AND ZERO TRYING TO STAY AWAKE FOR A WEEK WHILE CHANTING "NO SLEEP TILL BROOKLYN"

#

AND SO I CAN HAVE SYLVIA AND HALEY START A FASHION MAGAZINE TOGETHER

gaunt orbit
#

Please remember rule 40 of the internet

balmy valve
#

Huh?

#

oh whoops

#

caps lock?

#

my apologies

gaunt orbit
#

EVEN WITH CRUISE CONTROL YOU STILL HAVE TO STEER

balmy valve
#

Apt metaphor. Because i am going off the rails

gaunt orbit
#

xD

balmy valve
#

Do you know what the event thing is to start an event after the farmer sleeps?

#

Like the wedding or the bus being repaired

#

Wait

#

Figured it out I think!

#

Nvm

#

did NOT figure it out mayday

calm nebula
#

I believe there is a framework for it

balmy valve
#

Yeah but it's like a trigger action thing

#

And I can't trigger an event with a trigger action

#

Basically after the player sleeps, i want this event to happen of Zero hopping off the bus (or walking idc) and going "welp. time to move in ig"

uncut viper
balmy valve
#

o

#

so there's no way to do this in vanilla?

uncut viper
#

nope

balmy valve
#

Ah well. then I'll simply do it like the Kent introduction

#

Or

#

Temporary map >:)

#

Or

#

I omit it altogether

#

OR

#

I DIG THROUGH THE CODE

#

AND FIND WHAT MAKES THE EVENT HAPPEN WHEN IT DOES

#

Anything to avoid further dependencies

uncut viper
#

nothing makes the event happen when it does. the framework does it.

#

you cannot do an overnight event like that without dependencies or your own C# code

lucid iron
#

i mean u can do morning events in the farmhouse

#

that yeet u somewhere else

#

thats approximately the same feel

calm nebula
#

That's how sve does it iirc

lucid iron
#

only jank is that if ppl restart day then brrrr event go boom

uncut viper
#

id call that a pretty significant jank and personally as a player i really dislike morning events lol

#

makes me feel like i "have" to finish the day now even if i was thinking about stopping playing

balmy valve
#

Jk i am NOT doing allat

#

I'll figure something out

uncut viper
#

you said "anything"

balmy valve
#

Anything barring that

lucid iron
#

i dunno i think it's just about how important this is to you

balmy valve
#

it's uhhh

#

idrc

#

i could def do without it

#

I'm a fan of show don't tell but i think i'd rather tell here than show

lucid iron
#

then just slap a morning event on it whatever dw about button (\lh)

rough lintel
#

ok, fellas, ive got a token problem and i need assistance

i have two variations of keys -- regular, and then NoModern. when a config option is enabled, in the dialogue, it will choose the NoModern version of a key IF it exists, otherwise it will default to the regular. so far this is accomplished by the following example (daily dialogue is the same, just named dailydialoguekeytoken)

{
    "Name": "SeasonDialogueKeyToken",
    "Value": "Lani.Dialogue.{{season}}_{{DayToken}}{{HeartLevelToken}}"
},
{
    "Name": "SeasonDialogueKeyToken",
    "Value": "{{SeasonDialogueKeyToken}}{{NoModern}}",
    "When": {
        "Old Timer Language": true,
        "HasValue: {{i18n: {{SeasonDialogueKeyToken}}{{NoModern}} }}": true
    }
},

howEVER, it seems to not pick the NoModern version even with the config enabled. if i get rid of the "HasValue" clause, then it will apply, but the check for checking if NoModern variants actually exist is gone.

#

i know this could hypothetically be done in "five minutes in c#" but i'm too silly for that and want to figure out why this won't work. is it just too many tokens? too complex? i didn't cook enough?

balmy valve
rough lintel
#

tl;dr i want the game to pick the NoModern version of a key only if it exists, otherwise keep the normal version in the pool

uncut viper
#

ill admit im kind of having trouble parsing what exactly it is you're trying to do or what the problem is but why arent you just using i18n fallback keys

rough lintel
#

what part is confusing. i can elaborate

tiny zealot
#

you want i18n fallback keys for this i think

uncut viper
#

the All of it, but thats not exactly your fault, just kind oif always hard to get an immediate feel for whats going on when presented with someones very custom token setup

rough lintel
#

oh ok

uncut viper
#

but yes, you shouldnt need to check if i18n exists when i18n tokens can already specify what key they should use if the i18n you asked for doesnt exist

rough lintel
#

um hm

i have the pool of chosen dialogue like this:

{{season}}_Mon2, Mon2.{{Random whatever}}, and Mon2.{{whatever}}

some of those keys have NoModern verisons appended at the end so the pool of chosen dialogue would really look like:

{{season}}_Mon2{{NoModern}}, Mon2.{{Random}}{{NoModern}}, Mon2.{{Random}}{{NoModern}}

#

but not all the keys have NoModern variants so im like. Bwah?

#

can i specify a fallback per key in a pool??

uncut viper
#

thats what the fallback key is for

rough lintel
#

but the fallback goes in order listed doesnt it?

#

if it pulls something that doesnt exist, then itll always play the fallback key

#

so itll keep pulling the fallback key a majority of the time if i have Mon2.1, Mon2.NoModern, and then Mon2.3 or something

uncut viper
#

itll only choose the fallback key if it randomly chooses i18n that doesnt exist

#

isnt that what you'd want

rough lintel
#

...hm

#

i think im overcomplicating this

calm nebula
#

You are

rough lintel
#

ok i dont know how to proceed from here then

#

if im thinking too hard

#

if i have
fall_Mon4.NoModern
summer_Mon4
winter_Mon4.NoModern
Mon4.1.NoModern
Mon4.2
Mon4.3

and i have my pool set up as {{season}}_Mon4{{NoModern}}, Mon4.{{Random}}{{NoModern}}, Mon4.{{Random}}{{NoModern}}, what if it pulls... Mon4.2? But since the NoModern is appended on, that key won't exist. i want it to pull that key, though, and just ... ignore that if it doesn't have a NoModern key...?

balmy valve
#

there's a game loop event called dayEnding, is it possible for me to use that for my own event

rough lintel
rough lintel
#

does this make more sense??

pine elbow
#

it my birthday

balmy valve
#

happy birthday!!

rough lintel
#

essentially:
pick a key
check if theres a NoModern variant
if there is, use it
otherwise, don't

balmy valve
#

dayEnding + change location?

tiny zealot
rough lintel
#

does that make it choose the same random?

#

if it does, i understand 🫡

tiny zealot
#

yeah go look up what the correct syntax is, i've never had to key a random so i forget what it is exactly

#

"key abstraction" means where the NoModern parts live

#

so don't put your NoModern key material in your dialogue.json keys, put it in the i18n so you can use fallback keys to load it only if it's defined

rough lintel
#

thank you ichor !!!

#

i shall do this now

#

appreciate your guidance 🙏

pseudo vault
#

I have a few questions.
1: How would I make a forage item exclusive to the mines?
2: Can I also add that item to the Mines tilling itemtable?
3: Can I make custom Litter, and if so, what do I use for the TargetField as it's not a forage item.
4: can I make custom Branches and Stones drop items when destroyed and also how do i make them destroyable?

lucid iron
#

what is litter? trash?

pseudo vault
#

I thought that was Weeds and similar

lucid iron
#

do u want that to come out of garbage bins

pseudo vault
#

I'd like them to spawn in random areas like the Stardew Valley weeds, twigs and stones.

lucid mulch
#

note the key randomization is order sensitive.
{{Random:1,2,3|key=asdf}} and {{Random:4,5,6|key=asdf}} will always spit out 1,4 2,5 or 3,6.
and if they are different lengths it can get out of sync really easily

uncut viper
#

it'd be Farm Type Manager, probably

lucid iron
#

for spawning, can u use ftm or spacecore to plonk the items down?

uncut viper
#

combined with Item Extensions

#

can FTM just place any ol item?

pseudo vault
#

Yeah, I guess I need to use FTM... I absolutely forgot that

lucid iron
#

i would check vmv they have a lot of those

rough lintel
uncut viper
#

i assumed it was just resource clumps (ive never looked at FTM)

lucid iron
#

i think u can but whether you can pick them up is a excercise for the reader

#

like i remember wild tree seeds being just, stuck

#

needed to bomb those away monS

gaunt orbit
pseudo vault
#

Well uh, guess I should first ask how to make Forage spawn in places.

gaunt orbit
#

You can do that either with an ftm content pack, or by editing location data with CP

#

[[Modding:Locations]]

rough lintel
# tiny zealot what you want is a dialogue key that's just the normal form, and the key abstrac...

hypothetical would this work for the seasonal keys

    "Name": "SeasonDialogueKeyToken",
    "Value": "Lani.Dialogue.{{season}}_{{DayToken}}{{HeartLevelToken}}"
},
{
    "Name": "SeasonDialogueKeyToken",
    "Value": "{{SeasonDialogueKeyToken}}{{NoModern}} |defaultKeys={{SeasonDialogueKeyToken}}",
    "When": {
        "Old Timer Language": true,
        //"HasValue: {{i18n: {{SeasonDialogueKeyToken}}{{NoModern}} }}": true
    }
},
#

or would i append the defaultKeys somewhere else

gaunt orbit
#

[[Modding:location_data]]

pseudo vault
#

I guess I'll use FTM as I'll also need to do the Weeds Branch and Stone.

gaunt orbit
#

Would be nice if the modding pages used a consistent naming scheme. I wonder how hard it is to set up aliases

pseudo vault
#

This is what I currently have for Weeds

uncut viper
#

doubt its hard. the Wallet page redirects to Special Items & Powers

#

i imagine you can do the same for modding pages

#

whether you or i can, idk

#

the royal you is what i meant

tiny zealot
pseudo vault
#

Actually... I can't find how "chance" works. is it % based?

rough lintel
#

yeah i do use it in a token ichor

"Name": "DialogueToken",
"Value": "{{i18n: {{Random: {{SeasonDialogueKeyToken}}, {{DailyDialogueKeyToken}}, {{DailyDialogueKeyToken}} }} |defaultKeys= Lani.Dialogue.Mon.0 }}"
#

it just splats it all together in here

tiny zealot
#

i guess try it and see then. too much going on for me to sensibly predict the outcome

rough lintel
#

understandable

#

thank u anyways

rigid oriole
gaunt orbit
#

Huh, I might do that then

rigid oriole
#

What do u wanna redirect out of curiosity?

uncut viper
#

probably smth to do with the fact that its a crapshoot whether a modding page ends with " Data" or not

rigid oriole
#

I swear the convention is never know is when to caps something

#

Rip pathos who fixed caps on 15 pages after a refactoring I did yesterday to satisfy a stub notice

rough lintel
#

ICHOR YOU DID IT

#

WOOOOO

gaunt orbit
#

Some of the modding pages are just Modding:Thing and others are Modding:Thing_data, so if I can I want to add redirects so you can get to the Thing_data pages from Thing

rigid oriole
gaunt orbit
#

Like Modding:Locations -> Modding:Location_data

uncut viper
#

i dont know if you're part of the problem or part of the solution

#

because i dont know what its meant to be or what started itr

rigid oriole
#

Im part of the solution because nobody else was going to migrate that giant crop info /lh

rough lintel
#

there is totally a debug command to display a dialogue line right

uncut viper
#

(i just noticed Pathos added CompleteQuest the other day. thank u pathos SDVpufferheart)

gaunt orbit
#

Also realistically objects should probably be multiple pages but that's a spaghetti pile I don't want to touch just now

rigid oriole
gaunt orbit
#

Well, no, because you could make it an index page

uncut viper
#

whats wrong with Objects

rigid oriole
#

Hmmm fair

uncut viper
#

Modding:Items is already basically an index to each item type

gaunt orbit
#

Oh wait I think I got the two confused

uncut viper
#

Objects is all Data/Objects

gaunt orbit
#

Item stuff used to be a single gigapage for all item data except clothing

#

Which was just very confusing

uncut viper
#

that was changed some months ago

#

mid December, evidently

gaunt orbit
#

Yeah I haven't been on the wiki that much recently, so I'm not surprised I missed it

#

Mostly just the pages for location data, maps, gsqs, token text, and trigger actions

ivory plume
# gaunt orbit Some of the modding pages are just Modding:Thing and others are Modding:Thing_da...

The original distinction was:

  • Modding:X data pages only covered the data format (e.g. Modding:Object data explained the Data/Objects format without the surrounding topics like C# extensibility);
  • Modding:X pages covered everything about a topic (e.g. Modding:Maps explained how to install Tiled, how to install maps, their data, etc).

The distinction is legacy though, since there's no reason not to document non-data stuff if it's useful. So we're slowly renaming all pages to remove the 'data' suffix.

rigid oriole
#

yay, part of the solution i think

ivory plume
#

(Maybe we can just rip off the bandaid and rename all the remaining pages.)

uncut viper
#

i was about to ask why it was a "slowly" thing

ivory plume
#

Mostly just because it's a pain to do, since we need to go through and fix all links on the wiki to point to the new page title.

uncut viper
#

from what i read if you "Move" a page it auto-creates the redirect for you

ivory plume
#

(The main wiki moderator doesn't like links to redirect pages.)

lucid iron
#

can spacecore animate a map tilesheet

uncut viper
#

i feel like creating the redirects and then making the "fix the links" the "slow" part of the process would be better imo but i am not the main wiki moderator, so

lucid iron
#

i have special reasons to not do this via normal ass map things

#

it is the ginger island mailbox tiles

tiny zealot
#

@idle lantern to set custom dialogue for your NPC when they accept the mermaid's pendant, you add a key to Strings/StringsFromCSFiles which is <NPC_internal_name>_Engaged

#

so if memory serves, you would have a patch like this:

{
  "Target": "Strings/StringsFromCSFiles",
  "Action": "EditData",
  "Entries": {
    "{{ModId}}_Rahiel_Engaged": "Your dialogue here"
  }
}```
calm nebula
uncut viper
#

(tbh idk if my wiki account even has good enough reputation to rename pages wholesale but since its easy to find every page that links to a certain page anyway, id probably find it satisfying to just go and rename/fix them all myself tbh just to finally have them all consistent)

tiny zealot
#

modulo i18n, of course, which i recommend you use if you aren't already

lucid iron
#
{
  "Action": "EditData",
  "Target": "spacechase0.SpaceCore/TextureOverrides",
  "Entries": {
    "{{ModId}}_Maps/island_tilesheet_1": {
      "TargetTexture": "Maps/island_tilesheet_1",
      "TargetRect": {
        "X": 48,
        "Y": 368,
        "Width": 16,
        "Height": 32
      },
      "SourceTexture": "{{ModId}}/mailbox_gingerisland:0..4@300"
    }
  },
},
#

what am i do wrong bolbthinking

lucid iron
#

weh

calm nebula
#

Basically every draw rectangle has to be separated

lucid iron
#

thank god its only 2 squares

calm nebula
#

And maps draw in 16x16

lucid iron
#

do i need 2 textures

calm nebula
#

The atra is not sure

lucid iron
#

ill do it just in case

#

hm spacecore crashed my game when i tried to patch reload

uncut viper
#

was that the intended outcome

lucid iron
#

idk i can only assume the carrier pigeons are trapped

#

ah right spacecore doesn't use miliseconds but ticks

pseudo vault
#

Is this actually a valid type?

lucid iron
#

yea

pseudo vault
#

wow

lucid iron
#

how do u covert from tick to ms blobcatgooglyblep

idle lantern
#

he hates me lol

calm nebula
#

Unless you use a lot of mods

pseudo vault
#

wait what?

#

What if I have Forageables that need more?

lucid iron
#

use condition

tardy adder
#

Hewo, I have a CMF related question.
How can I go about expanding a custom museum space?

Like if I add Y mod, it can add an additional map space and detect those as museum stuff?

pseudo vault
#

Well uh... there is a lot of info. I am not sure I understand it

#

do I write it like Town_Summer?

#

Is there one for all seasons as well?

uncut viper
#

CMF looks at the Location to know what museum it is, not the literal tiles on the map

calm nebula
lucid mulch
calm nebula
tardy adder
#

so the other mod can add to ze custom museum rewards? or... a_checking

#

I'll get the hang of it eventually vv

uncut viper
#

the other mod can edit the Spiderbuttons.CMF/Museums asset after you do to edit your museum yes

tardy adder
#

Oh... OH >:3

#

Game changer Button, thanky for illuminating my chaotic path

pseudo vault
#

I am very confused if I did this right.

iron urchin
#

hi idk where to ask but is there things like modpacks in minecraft, but for stardew ? im new to modding and added a few mods to my save but idk many mods so i'd like to discover somes

#

ftm i added allat

vernal crest
iron urchin
#

thanks

#

im gonna send it in it

vernal crest
pseudo vault
#

Can I add in multiple locations as well?

#

Does it need a comma or is it fine without?

vernal crest
#

No, you can only check one location. No commas.

#

But you shouldn't need to be checking multiple locations anyway because it's going to be the same season in almost every location (except for desert and ginger island).

#

You can use a second GSQ if you need to check another location though.

pseudo vault
#

I think I'm using the wrong thing then... What do I use for custom forageables?

vernal crest
#

What do you mean? That is a custom forage item. The Condition is just to control when it will be available. Right now you're adding your custom forage to Default* when it's spring or summer in Town (and therefore most of the world).

* I don't know what Default actually does, whether it shows up everywhere or only places that don't have their own forage list, or something totally different.

pseudo vault
#

I would like them to have a chance to spawn as well in the backwoods, busstop, woods, secret woods, railroad and mountain.

#

It's to simulate how they are found everywhere in Harvest Moon DS

vernal crest
#

The condition doesn't stop that from happening.

pseudo vault
#

I really misunderstood it.

vernal crest
#

Is it making sense now?

pseudo vault
#

I think so.

#

Can I use that condition to make them able to spawn in the Mines as well?

devout otter
#

Excuse me @brittle pasture , but did you hackerman into the ES mod page, upload a file, delete it and run away? /j

#

But seriously it seems that there's some shenanigans happening in Nexus database with various modder names getting attached to random mod updates? Do we know anything about this?

round timber
#

omg i saw that too with Riley, i was very confused

#

no idea it was a widespread bug(?)

gaunt orbit
#

once again nexus is broken

round timber
#

love that it keeps finding new ways to be broken

gaunt orbit
#

trying to navigate past the first page of bug reports yields only errors

rigid oriole
#

Nexus knows about the error

gaunt orbit
#

I figured

brittle pasture
gaunt orbit
#

hmmmm turning comments into bug reports also seems to be broken

calm nebula
round timber
#

The Devs

#

rigid oriole
#

Bro does not have automated tests /j

calm nebula
#

Can't blame them too much

#

After all, they're working with an antique bbcode forum as the base code

rigid oriole
#

Certainly not a job i would want to have

calm nebula
#

Apparently the new management is pro AI

pseudo vault
#

oh no

rigid oriole
#

I am unsurprised

tiny zealot
#

the old management was pro AI, too, but i guess only milquetoast pro AI and maybe not as full-throated

rigid oriole
#

Trust surely it will not devolve into being unusable due to vibe coding

#

Do we know for sure that the chosen company is part of this and not just the 2 random ppl

#

They gotta do an official announcement eventually....

calm nebula
#

Also ngl if i ever name a company "The Chosen" please come up to me and hit me across the face with a fish

#

What happened to generic positive sounding names

rigid oriole
#

"Happy gaming leadership"

pseudo vault
#

Anime happened

rigid oriole
#

That time I became the nexus mods site owner in another world

calm nebula
#

The company name just sounds so stupid I can't take them seriously

pseudo vault
#

anyways... anyone knows if this will work?

gaunt orbit
#

it sounds like a spinal tap gag

rigid oriole
#

All their graphics are just... Orb

calm nebula
gaunt orbit
#

oh for the mines? I don't think forage spawns in the mines

#

floor stuff is handled with other systems

pseudo vault
#

Wait how do the weeds mushrooms and Quartz-

#

Man...

gaunt orbit
#

I think there's a framework for it though

calm nebula
#

Ftm might be that framework

pseudo vault
#

I tried looking at the commands and am more confused than knowledge

#

I think i need help for that as well

#

I was never good with that stuff. Someone always has to explain it multiple times until I understand it

gaunt orbit
#

Item Extensions can modify mine spawns

#

although I guess only for custom resource nodes

#

I think FTM is the only way if you want regular objects to spawn

calm nebula
#

Either that or the dude has a LinkedIn account

#

Not sure

tiny zealot
rigid oriole
#

I truly want this to be some other guys linkedin and twitter

#

Like fully unrelated

lucid iron
#

ichor what if farm animals can hat

rigid oriole
#

I wonder... do we give nexus mods a license to feed our content to ai?

#

Like already do we do that

urban patrol
#

is there a list or map of where NPCs stand and walk during the night market, similar to how there's the spreadsheet for the main festivals?

gaunt orbit
#

linkedin is such a wasteland my god

rigid oriole
#

The worst part is its necessary for a job lol

gaunt orbit
#

if I ever start making inspirational javascript posts on linkedin just put me down please

#

yeah it's so fucked

tiny zealot
gaunt orbit
#

I hate how much capitalist toe-sucking it involves

rigid oriole
lucid iron
rigid oriole
#

I saw someone with a tagline of "i want to connect with you, emotionally" and his whole post history was just gibberish and he's the only valid LinkedIn member

lucid iron
#

whenever i try it get stuck and eventually the first comment in the chain makes it

#

it was so useful SDVpufferpensive

gaunt orbit
urban patrol
lucid iron
#

i admit that i thought u said (O)0 weedses instead of O(0)

pseudo vault
#

This stuff is really confusing...

#

Please tell me it's easier to add it into the Mine's Tilling droptable.

lucid mulch
#

O(0) also works in teaching the weakness of O notation, in that O Notation only talks about how algorithms/systems scale based on the input, not on how long it actually takes
an O(1) algorithm that is shit can be slower than O(N!) particularly at sane values of N

gaunt orbit
#

I honestly feel that one of the most important aspects of performant programming is actually just assessing what assumptions you can and can't make, and when to restrict functionality in favor of computational corner-cutting

#

It's something that I think takes a lot of time and practice to get good at

tiny zealot
#

profiling is also good /lh (figure out where your bottlenecks actually are, then fix those first)

gaunt orbit
#

oh absolutely. That is such an obvious step that I forgot it wasn't self-evident

lucid mulch
#

(if only someone made a mod called Profiler to try to find the bottlenecks, it would help in troubleshooting performance problems)

gaunt orbit
#

it would be so nice to have but I doubt anyone would ever make such a thing. It's simply too hard. /jk

#

fr though profiler has been a great help for yelling at me for writing inefficient code identifying slowdowns in regular play

lucid mulch
#

profiler yells at itself sometimes as well don't worry

gaunt orbit
#

in mumps I had a feature that scanned the paths layer to gather information and it wasn't caching any of it so the mod overall added like a second of load time between rooms which was. not good

lucid iron
#

1s bolbphase

gaunt orbit
#

it was like 800ms I think

lucid iron
#

i remember i used to do this (in early version of the mmap light tile prop stuff) but it wasnt that bad

#

specifically it scanned the front layer

lucid mulch
#

I don't mind performance spikes on warp or even infrequent button presses.
its timechanged or even updatetick(ing/ed) that I'm less happy with

gaunt orbit
#

yeah but cp added another 1900ms so overall there was like a 3s pause whenever I changed rooms, which was an active hindrance for things like buildings where you're frequently warping in and out

#

in my 1.6 pack neither of these things is an issue any more

#

in the case of CP I suspect it's at least partially because DSV uses Appearances now, and the sequel mod to mumps has a lot more and better caching going on

lucid mulch
#

the advantage warp has is that the lag spike is while its on a black screen anyway so feels less disruptive than your inputs suddenly not doing shit walkng in town or fighting mobs in the mine or fishing

#

a lag spike while fishing a hard fish is extremely frustrating

lucid iron
#

sometimes i wish automate had a warp only mode or smth

lucid mulch
#

I think currently I have a perf issue with chests anywhere doing some stuff in Rendered, I think for furniture names or something

#

not all of those 5-10ms blocks are chests anywhere

lucid iron
#

is it rendering for storage furniture?

lucid mulch
#

I really need to get around to rewriting this damn website, it deciding all the mods needing to be purple isn't useful

lucid mulch
lucid iron
#

weird

lucid mulch
#

chests anywhere does have functionality for doing tooltips which I think this might be?

fathom hound
#

Thank you! Didn't see this

lucid mulch
lucid iron
#

i appear 6 times on PlayerWarped Dokkan

pseudo vault
#

Question, would this work to get Forage to spawn in the mines?

lucid iron
#

i wish profiler had better ways of breaking down cp pack problems though

#

or perhaps it does have the tools and i didnt set it up right

lucid mulch
#

it does with my builds of content patcher

lucid iron
#

unfortunately idk if i can give this to randos in mh blobcatgooglyblep

lucid mulch
#

Profiler cant do it from the outside due to the methods not being naturally called

MethodInfo apply = this
    .GetType()
    .GetMethod(nameof(this.ApplyPatchesToAsset), BindingFlags.Instance | BindingFlags.NonPublic)!
    .MakeGenericMethod(e.DataType);

apply.Invoke(this, [e, loaders, editors]);
pseudo vault
#

I don't understand the FTM commands... I can't find one for the mines.

lucid mulch
pseudo vault
#

Maybe if I look at a vanilla item? How exactly does spawning Clay work? You Dig the ground it has a chance of giving clay?

lucid iron
#

a lot of this stuff is hardcoded in some way

#

you can perhaps try editing Data/Locations UndergroundMine tho

#

and iirc FTM does have some stuff for dealing with mines

pseudo vault
#

I think i am blind or just illiterate.

#

I can't find it...

lucid iron
#

MapName UndergroundMine perhaps? i am unsure blobcatgooglyblep

pseudo vault
#

Maybe I need to add all of these?

lucid iron
#

those r tilesheets

#

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

the tmx is what u want but cant see that until u unpacked

pseudo vault
#

Wait. I think i am still not reading it correctly?

#

It has them for all seasons but only seperate

#

I can't find an option which includes all seasons in one

lucid iron
#

honestly i am not sure about this either blobcatgooglyblep

pseudo vault
#

This is incredibly confusing and difficult...

#

maybe a foraging modder could help.

lucid iron
#

you should prob avoid focusing too hard on the mines

#

they are very hardcoded

#

do the straightforward bits first Dokkan

pseudo vault
#

I know, but this one single "foraging" item was only available in the Mines in harvest Moon Ds.

lucid iron
#

yes i understand but what if u just put it in the quarry

pseudo vault
#

I thought making it a forage in the mines would be easier than making it obtainable by tilling in the mines

lucid iron
#

thats an ordinary location

lucid iron
#

i know people do spawn things in the mines, but mostly ore nodes NotteThink

pseudo vault
#

Yeah I am kinda weird

#

Or maybe Harvest Moon DS is weird

#

I am not looking forward to doing the Litter items and making the Branches and Stones be able to drop Stardew Valley materials

#

Will this work?
"Condition": "LOCATION_SEASON Quarry spring summer fall winter"

lucid iron
#

quarry is part of Mountain

pseudo vault
#

Oh.

lucid iron
#

and u can use LOCATION_NAME alone here psure

pseudo vault
#

Okay.

daring skiff
#

GitHub says I should post here to request the mod author role.

calm nebula
#

@outer glacier cheeto dust requested ^^

daring skiff
#

You too.

haughty charm
daring skiff
haughty charm
#

yes. sorry! I mistyped SDVpufferflat

daring skiff
#

I'm on it.

haughty charm
daring skiff
#

Oh, I'm sorry. I mean "I'm doing it right now" orz

proud wyvern
#

"i'm on it" also means "okay, doing that now"

#

yeah

haughty charm
#

lmao

daring skiff
haughty charm
#

Ok so I'm a little slow on the uptake tonight

daring skiff
#

No, me too.

haughty charm
#

You're good, Dylan - I just apparently need to unplug myself and plug myself back in

daring skiff
#

Done.

#

Should be at the bottom.

rigid oriole
#

nooooo, the alphabetization

#

congrats on ur soon-to-be cheetoness

haughty charm
#

achoo Congrats on the triple-coating of cheeto dust!

daring skiff
#

I wanted to be cool like Scarlett and Kantrip.

haughty charm
#

Welcome to our latest cheeto!

daring skiff
#

Excited to join a cult.

#

Thanks btw, logo!!

haughty charm
rigid oriole
#

so many cheetooooooooooooo

pseudo vault
#

I need some help with fixing a different mod. A buddy is using it but the sprite change does not seem to work. in sublime it seems to say that it has an error. But the validator says it's all fine.

half tangle
#

I can't speak to why it's not working, but those are not the same file - the first with the highlighted red 0 twice does not write that as a string like in the validator example: "0"

faint ingot
#

does anyone happen to know where the images are in the unpacked files for the trinkets (frog / fairy etc)?

pseudo vault
#

I swear I did not do anything.

half tangle
#

TileSheets/Objects_2

#

(around the middle, in case you have trouble spotting them)

#

and companions if you wanted the actual companions

faint ingot
#

yep that's perfect thank you

mighty ginkgo
fossil osprey
#

Most likely yes

hard fern
#

anyone know what this thing is

#

and uh, this?

lucid iron
#

Unused

#

The second one is probably a trinket icon given the position

hard fern
#

oh i thought so

lucid iron
#

The first one is pet license

#

But never shows in game

calm nebula
#

Is thar a box

#

With your pet in it

hard fern
#

It's The Creature

calm nebula
#

kailey please onyx in box pics

lucid mulch
calm nebula
#

Cat

hard fern
#

Meow

fathom hound
opaque sky
#

How do I make the music play at a specific time of day? So far nothing working for me.

lucid iron
#

Don't do this please just use GSQ for the whole thing bolbjed

#

Anyways if this is location music, you would need to enter the location at the valid times

lucid mulch
#

the cp when/update would need to be at the more outer layer anyway and not within your entry

balmy valve
#

Kity!!

#

Back to making evebntgs

#

And when im doen with ebent

#

I am "done" with mod

#

(ready to be sent to the boys for playtesting)

opaque sky
#

Like this? Also, how can I superimpose the music onto every map, or is that impossible?

royal stump
#

(although I guess the time GSQ is fine with leading 0s, checking the code)

balmy valve
#

ugghhhhh i REALLY don't wanna give zero an eight heart event

#

because the ten heart event is a wedding >;[

#

Is it possible to make schedules take different priorities?

#

Like rain usually takes priority over friday, but friday is mail delivery day for zero and he gotta get dat mail out

latent mauve
#

You could probably use a when condition to change the rain entry for his schedule on Friday?

tiny zealot
#

(gsq conditions in schedule parsing when? /lh)

idle lantern
#

// Marlon
{
"Operation": "Append",
"Target": ["Fields", "Marlon", 1], // Loved
"Value": "Strawberry",
"Delimiter": " "
}

Inside the value, do I put the [ID] number or the full name, for the strawberry?

balmy valve
#

id dumber

#

number

#

eugh

faint ingot
#

I'm really confused. I have a sprite and portrait change I want to apply to the wizard, for the rest of the day after seeing an event. If I apply the patch without conditions, I can see that it works. However, when I use conditions it never applies. I have tried applying the conditions as part of the appearance conditions, and as content patcher conditions. I've tried making the condition having seen the event, or having a conversation topic that I set during the event. Simplified example that never works (but does if I take out the condition): { "Action": "EditData", "Target": "Data/Characters", "Fields": { "Wizard": { "Appearance": [ { "Id": "LAOSV_wizard_transformed", "Condition": "PLAYER_HAS_SEEN_EVENT Current {{ModId}}_RipleyWizard", "Sprite": "Characters/Wizard_LAOSV_Transform", "Portrait":"Portraits/Wizard_LAOSV_Transform", "Precedence": -999, } ] }, }, },

tiny zealot
#

NPCs only recheck their appearance conditions when they change locations, which the vanilla Wizard famously never does

faint ingot
#

Oh OK, I saw that information but misinterpreted that the appearance was applied when the farmer changed locations

#

dang

calm nebula
#

Npcs only change clothes when they warp

faint ingot
#

OK, I guess I can set the event to have the wizard be invisible and replace him with a stand-in but that will unfortunately prevent gifting

rigid oriole
#

Wizard never touches grass

calm nebula
#

They're a wizard. Do wizards need to touch grass

rancid musk
#

Wizard ponders grass

rough lintel
#

khloe! hello!

rancid musk
#

Hello~
-# I had to sneak out from my lair in programmers off topic to make a dumb joke

balmy valve
crude plank
rancid musk
#

Piles of gold? In this economy?

#

I wish.

balmy valve
#

I want to make an event in the Secret Woods. How get rid of the slimes?

tiny zealot
#

you shouldn't have to. events take place in a pocket dimension

balmy valve
#

Okay!

#

What about the stumps?

#

is there an event condition that relies on a quest being completed

tiny zealot
#

if the quest sets some other state (typically mail) flag, you can use that. otherwise the game doesn't really keep track of which quests you have completed

balmy valve
#

nOOO

#

hang on

#

can i make an invisible mail?

#

like mail that doesn't actually exist

tiny zealot
#

yes, the game does that all the time

balmy valve
#

Yippee!

tiny zealot
#

that's why we call them mail flags /lh

balmy valve
#

how do that

#

i can attach a quest to a letter but i wanna attach a letter to a quest

tiny zealot
#

depends on the quest and how you complete it

balmy valve
#

item delivery

#

something with mailRecieved i assume

tiny zealot
#

if it's a give-this-person-an-item quest, they probably talk to you, so you probably have to use a dialogue command ($action) to send the mail

balmy valve
#

ok!

#

do i have to edit data/mail? no, right? because there's no letter, just flag?

tiny zealot
#

yeah if you add it to data/mail then it will become a real mail that shows up in the mailbox (or in your collections page if you send it straight to received)

#

it can/will still work the same as a checkable flag though

balmy valve
#

okay!

ivory plume
rigid oriole
#

or rather just a "here it is all in once place" thread, not rly containment

#

that post truly did become a nightmare

ivory plume
#

Probably still good to summarize new developments here for those who aren't in the thread, then redirect discussion to the thread.

sand timber
#

Hi! I'm planning to make a mod that adds a new late-night TV channel (available only after 8:00 PM) after the player meets certain conditions, but I have no idea where to start. Could anyone point me in the right direction or share some advice?

lyric lotus
#

hello, does anyone know offhand what x and y, width and height the vanilla straw hat is in terms of FS .josn hats? i've done a tiny edit with ears on the straw hat and am just struggling to get the positions and w/h done. i'd really appreciate any help!

brittle pasture
tender bloom
#

I recommend going w 0 0 offset and 16x32 size to start w

#

And then using Fs_reload to tweak

brittle pasture
#

what you want (only after 8pm) doesnt seem to be supported however

#

you'd need to roll your own C#

faint ingot
#

You could point the mod to a certain image, and have a CP patch that edits the image after 8pm?

sand timber
tender bloom
#

Before 8pm just have static?

sand timber
brittle pasture
#

that isn't possible

#

it uses its own content pack model

tender bloom
#

CP has an OnTimeChange frequency that lets you change what the image would look like at different in-game times but this only works if the mod dynamically fetches the image, even if was a CP framework (which apparently isn’t)

brittle pasture
sand timber
#

Thanks a lot for all the suggestions! Can I ask C#-related questions here too ?

brittle pasture
#

most definitely

sand timber
lyric lotus
#

so i got the front in the right position but there's a hat at the bottom of the character and it's static front face no matter which way i turn my farmer.

tender bloom
#

How is your sheet laid out?

#

Do you have the hats vertically and arranged in a 16x16 grid? Because if you set it to pull from 16x32 but the hats are 16x16 then it will do this

lyric lotus
#

i think it's 16x72?

#

ok 16x16 fixed it

#

but it's still only facing one direction when i turn my character

sand timber
#

Did you add it with FS or JA?

lyric lotus
#

FS

sand timber
#

Would you mind sharing your JSON file?

lucid iron
#

(dont use JA please)

lyric lotus
sand timber
#

Each direction (FrontHat, BackHat, LeftHat, RightHat) might need a slightly different Y value to align properly.

lyric lotus
#

align with the other angles?

#

it's stuck like this:

#

in the front facing-angle

#

so adjusting the Y value doesn't show

balmy valve
#

In an event i have two characters kissing but their sprites...don't align??

ornate trellis
#

did you try position offset

balmy valve
#

no i did not. hang on

ornate trellis
#

id suggest maybe looking at an event code that has kissing in it(tho off the top of my head idk any, hm)

rigid oriole
#

Maybe one where an npc kisses the farmer?

#

Like Haley dark room?

balmy valve
#

I think it's just Alta being "higher" than Zero by 1 pixel

balmy valve
#

I added the position offset and it broke the whole event so im just gonna reupload the spritesheets

finite willow
#

what programming language do yall use to code mods btw?

trim sand
#

so i just got a message on nexus about smapi 'warnings' so im trying to be sure somethings not wrong. the map edits in question are reliant on specific other content packs/specific config for said content packs being loaded/active before it places the fruit trees from said mods into the map. im just confused as to why its throwing a warning at all, since its supposed to not apply when the content/config is unavailible.

lucid iron
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.

rigid oriole
#

Chu beat me

lucid iron
trim sand
#

i was hoping that wasn't needed. and it was just a 'hey this patch was skipped' in all cases.