#making-mods-general

1 messages · Page 184 of 1

unique sigil
#

if it's close enough to an existing vanilla minecart, there may be no need to add one SDVpuffersquee

lucid iron
#

@ornate trellis i released MMAP-1.4.0 which has the draw layers stuff, there were some field name changes so here is new wind turbine set up. the produce is still a problem with only 1 tile though, cant seem to have input and output chest on same tile

upper rune
#

Finally finished my mod! https://www.nexusmods.com/stardewvalley/mods/31119/ Thanks to everyone who has helped me in the discord!

Nexus Mods :: Stardew Valley

Looking for more whimsy and magic in your Stardew game? This crop expansion adds 28 new crops, 3 mushrooms and 3 mosses that are witchy, fae, or otherwise magically inspired. Two of those crops are

unique sigil
upper rune
#

That would be awesome 🙂

ivory plume
#

(If we make it a central station, one benefit could be maybe integrating it into Train Station and renaming it to Central Station to cover all the transport types.)

brittle pasture
unique sigil
light bramble
#

I’m down to do whatever you need. If you commission me lol 😂

upper rune
#

I think the description works as is

gaunt orbit
#

what's the method to display a popup message that doesn't have the little icon box? (like the level up notification)

ivory plume
#

@unique sigil Since you were suggested first, would that be something you'd be interested in? If so, do you want to move to DMs to discuss the map/pricing/etc?

unique sigil
#

sure! SDVpufferheart

light bramble
#

Congrats Kisaa XD

gaunt orbit
light bramble
#

I’m sure you’re going to do a darn good job

upper rune
calm nebula
light bramble
#

which is all fine for me as I still need to properly set up my pricing for map mod commissions…

calm nebula
#

NoIcon = true or smrh like that

light bramble
#

@unique sigil might I be allowed to send a dm?

gaunt orbit
# upper rune Yeah?

you may want to add at least one close-up screenshot of the crops- either manually blowing up the sprites, or using a higher-resolution screenshot

lucid iron
nova gale
#

@thin hamlet fyi, here are the 30 minerals in your MCGM mod that are classified as gems (category -2) today (the others are classified as -12 (minerals)): (O)Alexandrite (O)Ammolite (O)BlueZircon (O)BrownZircon (O)Clinohumite (O)BlueCoral (O)BrownCoral (O)GreenCoral (O)PurpleCoral (O)CrystalOfLife (O)CrystalOfDeath (O)CrystalOfLifeAndDeath (O)Cymophane (O)FireAgate (O)Fluorite (O)LavaCrystal (O)MossAgate (O)Andesine (O)Aventurine (O)LavenderQuartz (O)RutilatedQuartz (O)RedZircon (O)PurpleSapphire (O)VioletSapphire (O)StarGarnet (O)GoldTopaz (O)SkyBlueTopaz (O)YellowTopaz (O)YellowZircon (O)Zircon

gaunt orbit
brittle pasture
lucid iron
#

yea

upper rune
#

Yeah the in-game screenshots came out blurry when I cropped them, I'll have to mess with it. But for now, just happy its working and ready to be shared

lucid iron
#

it also just, looks kind of weird with just the stalk

lucid iron
#

i think a 2nd tile for outtake would look nice prob

thin hamlet
#

Wow ive added over 50 minerals already

gaunt orbit
thin hamlet
brittle pasture
calm nebula
gaunt orbit
brittle pasture
calm nebula
#

Not even yourself....

light bramble
#

Welp bedtime. I’m tired I sleep

lucid iron
#

i trust you atra

gaunt orbit
#

comments for the comment god, xmldoc for the xmldoc throne

lucid iron
#

xmldoc throne seems pointy

#

all the < >

gaunt orbit
#

mhm mhm

calm nebula
#

Prancing around in winter in a Lara croft top for the...win?

gaunt orbit
#

</> </> </> behold my shruiken collection

patent lanceBOT
nova gale
thin hamlet
#

Cant wait to see!!

nova gale
#

I think I'm going to remove your crystal of life/death though, those are worth so much that they become brokenly valuable when put through the machine

thin hamlet
#

Yeah

#

Theyre super duper rare on their own

#

Like 0.5%, i could imagine their high price would break stuff

nova gale
#

the crystal of life and death become a pair of earings worth 225750 😛

thin hamlet
#

Careful! Wearing them makes pam disappear!!!

#

😜

gaunt orbit
#

anyone know offhand the id for that maraca-like sound that sometimes plays when you try to do stuff and the game won't let you?

versed wyvern
#

I don't suppose there's any way for a mod to check for the player's horse friendship when using Horse Overhaul? thonking Was thinking a letter with the Horse Flute being sent at full friendship would be a good way to unlock it during the mid-game rather than all the way at the end

opaque cobalt
#

has anyone had an issue with smapi freezing when trying to type a command in? Trying to type sinz.eventbyid in and as soon as I type sinz it freezes and while the scroll bar moves, the display does not. Game still ran fine. I am very confused

gaunt orbit
#

huh, that's really useful, thanks

brittle ledge
#

Oh nm I see Wren had the same idea I did SBVLmaoDog

upper rune
#

Thanks! Yeah I’ll have to make a banner and maybe take a regular screenshot rather than use the in game screenshot function.

teal bridge
#

Is there anything more satisfying in dev than deleting thousands of lines of broken zombie code?

ivory plume
#

(Deleting millions of lines of unneeded code.)

tiny zealot
#

doing it twice?

teal bridge
#

Good point, Topper. Still, I don't think a lot of folks have one-man projects that have millions of lines period, never mind millions unused.

#

So I am celebrating anyway.

velvet narwhal
# tiny zealot doing it twice?

oh since you're around and i went down a rabbit hole of "gotta stick to the bit of shitposting"
i have finagled my own way around j club compat in my nickname/named dialogues:
[LocalizedText Mods/Aviroen.MMaru/Translations:Nickname]
i'm gonna test in a second but, uh KEK

tiny zealot
#

i am curious

velvet narwhal
#

it seems it will not work in conjunction with BETAS

#
#$action Spiderbuttons.BETAS_DialogueBox Aviroen.VoidsentCP_Edelweiss \"Yo! Sinny! What's up?$1\"
#$e#...[LocalizedText Mods/Aviroen.MMaru/Translations:Edelweiss], can you please stop calling me that?$2```

but the LocalizedText does work
#

unless i've forgotten something somewhere, highly plausible

tiny zealot
#

interesting that the BETAS dialogue box appears to be displaying the internal name under the portrait? SDVpufferthinkblob

#

funny enough, a lot of the J club relies on Dialogue parsing strings for display to the player. as long as a jayified NPC's display name appears in the text, it gets replaced. so it doesn't matter if you put it in via localizedtext or some other way

velvet narwhal
#

gonna test rq without j club if the internal names still show up because i realize, uh, i've been debugging these chaotic dialogue lines with vanilla characters

#

suslysella yeah BETAS is showing internal names, i go ask button

tiny zealot
#

probably a simple goof. Name is the internal name field (easy to use by mistake)

velvet narwhal
#

oh so even if it was hard typed as if i wrote Edelweiss it'd get jayified? thonkmuvi

tiny zealot
#

yeah, if it matches the NPC's original display name

uncut viper
#

BETAS is not the one displaying the name

#

its the dialogue box that displays it based on the Speaker its assigned

velvet narwhal
#

it was me, i thought i hit build at some point but apparently i have not suslysella

lusty elm
#

i think i'm most likely hitting the record on tallest cliff face in stardew with this map rooThink at 30 tiles tall, and man at that height i'm definitely pushing what the tiles support.

normal trout
#

Earlier I was struggling with getting an AT pack to work for me, and got some suggestions but nothing really did what I was looking for. I'm happy to report that after taking a break, and working on it some more, I managed to do what I wanted to do with AT! 🙂 I still don't know why it wasn't working before, or what I did differently this time. But it works, and I was able to apply the texture I made to my shed, so I'm content. I have some tweaks I want to make on the texture I made (namely that I don't like the barrel on the right so that's going the way of the dodo), but I'm super happy with it now 🙂 I've always kept a shed just for fish and bait and such, and having the exterior reflect the contents makes me happy SDVpufferheart

lusty elm
normal trout
#

Your maps are always stunning, Draylon. I'd kill for like... a working stream? To see your process when you start a new map and how you work through the design process.

lusty elm
#

I actually did a few a few years back when i tried my hand on streaming on twitch. those vods are probably long gone though, and it can take a lot of time to go through, I've probably already put like 10 hrs into this one for example?

#

One of the secrets weirdly enough is a larger map, while a lot more work, gives you a lot more space to "draw" on, its one of the main reasons i tend to make large maps, I ALWAYS want more "canvas" to work on.

lusty elm
#

actually y'know what i'mma be streaming my tiled in Joja Mart Channel for a bit if you want to watch.

weak pulsar
#

just a theoretical question: a mod to let companions (no function) follow behind certain NPCs?

...in other words, giving Pokemon to the love interests? 👀

deft kiln
#

I would also like to know the answer to this... 👀

slender badger
acoustic summit
#

onlocationchanged, clear in old, add in new? It seems doable!

weak pulsar
#

!! Thank you for the answer!! Weird they can't go between maps? Do you set it for like, every map then or...?

(this sort of thing is far out in my mod but I'm still so curious Thank you !! )

slender badger
#

Best option would be to either have a CC pokemon that just roams around the character's house or make them an antisocial custom NPC that has the same schedule as the character, though that can run into schedule compat issues

weak pulsar
#

I def. want as much compatibility as possible, but maybe it can be a side mod for my own learning/for the more vanilla players

#

( also, I'm making Junimos into Miniors bc I imagine Stardew Valley's "Mythic" Pokemon is...Jirachi)

slender badger
#

CC just isn't designed for it, unfortunately

uncut viper
deft kiln
#

LOVE that idea

uncut viper
#

oh chu's here perfect, i was about to ask how feasible the idea of giving an NPC a trinket

lucid iron
#

nou

#

i was gonna say u just make a regular npc

uncut viper
#

not necessarily for you to do

lucid iron
#

like waffle ES

uncut viper
#

you just know how trinkets work best

lucid iron
#

i don't think npcs have the List<Companion> field that trinkets use to put their guys in

uncut viper
#

would Trinket Tinker trinkets work if a mod did give NPCs companions, or do they specifically rely on a Farmer

lucid iron
#

the abilities depend on Farmer ofc, but u can have trinkets that lack ability

#

that said, Owner is type Farmer, so it'll be jank

slender badger
#

If we're getting into C# territory, my thought was doing an antisocial NPC but with some way of grabbing an NPC's schedule and setting each co-ordinate to square roam around that point SDVpufferthinkblob

uncut viper
#

new idea: fake invisible farmer that follows the NPc everywhere on top of them

slender badger
#

Though it'd get crowded in the saloon lol

lucid iron
#

i just dont really think it's a good way to do things u know blobcatgooglyblep

#

say what about sprites in detail

weak pulsar
#

for pokemon, they could "go into their balls" in crowded places like the saloon 😂

uncut viper
#

what about sprites in detail

lucid iron
#

didnt dsv give linus marigold (a dog?)

#

using sprites in detail

slender badger
#

Yep, but Sprites in Detail just makes the visible sprites larger, it doesn't affect schedules SDVpufferthinkblob

#

NPC still has the same hitbox

#

Collision box? Whatever the term is

lucid iron
#

naruhodo

uncut viper
#

tbh i think any good solution here would require C#

lucid iron
#

i personally think just making anti social npc would be alright

#

just some schedule faffing about

uncut viper
#

i mean what would you do as soon as any mod touches literally anything in the schedule

lucid iron
#

9001 compat patches

slender badger
#

Yeah, it's definitely a way that would work, if you don't take into account schedule compat

lucid iron
#

its fine if it's ur own OC

uncut viper
#

its not even always fine in those cases!

lucid iron
#

alternatively u just have pokemons around people's homes like pets

weak pulsar
#

( I'm a fetus-level programmer so this is really cool to see ya'll discussing, thank you)

lucid iron
#

thats how it tends to work in the actual pokemon games anyways

slender badger
#

Which is also part of why Marigold is automatically disabled if SVE is installed, I do not care in the slightest for going through & adjusting her schedule to whatever SVE does to Linus's schedule and the map changes

lucid iron
#

i always talk to all of them

uncut viper
#

subclass monster and have it move towards a target NPC, like slimes

weak pulsar
#

Is the main issue something with collision?

uncut viper
#

the main issue is kind of the all of it with different submain issues depending on your requirements

slender badger
uncut viper
#

and what exactl you were imagining

devout otter
#

Alternatively, edit the NPC's sprite itself to have the Pokemon around?

uncut viper
#

not a whole lot of room without sprites in detail

lucid iron
#

now, bc trinkettinker has the whole anchor system

#

there actually isn't that much association with farmer

weak pulsar
#

I was imagining just the sprites near them--no need for any function to them!

And I was eyeing editing the sprites themselves at some point if it came to that...sprites in detail would probably help? 👀

lucid iron
#

its just that there's nothing implemented to spawn a companion adhoc

uncut viper
#

how much of a refactor would it be to make the Owner a Character instead of a Farmer SDVpuffersmile

lucid iron
#

that part is just going through vanilla trinket logic that i didnt touch

slender badger
uncut viper
#

this still requires the player to wear the trinket though

lucid iron
#

not really

devout otter
lucid iron
#

nothing stop me from doing some nonsense where i add a companion to the farmer whenever they r in a map with an npc that is "supposed" to have a companion

#

besides position the farmer is really just used to determine whether we should do some owner/local player only code blobcatgooglyblep

uncut viper
#

while true i thought you didnt wanna do anything

#

you said, and i quote, "nou"

lucid iron
#

ultimately this is like

weak pulsar
#

( for the pokemon I was thinking purely aesthetic but hey if someone adds more-- 😂 )

lucid iron
#

creeping way off the trinket framework purpose lol

#

r we sure this aint the exact kind of thing custom companions is for monS

uncut viper
#

you're a lot more reachable than the person behind Custom Companions

slender badger
#

Main issue with CC is that they can't move between maps

uncut viper
#

and malleable

slender badger
#

CC's more designed for things that either follow the farmer around (proto-trinkets) or randomly roam around a single map

uncut viper
#

i say this with nothing but kindness in my heart

lucid iron
#

companions cant rly do that either

uncut viper
#

not yet!

weak pulsar
#

At least we can spawn them in people's home then!! eeveewow

#

Everyone gets to headcanon who has what

lucid iron
#

yep that part's fine and vanilla

slender badger
lucid iron
#

they r still updoot mods i thought

#

just not active here

devout otter
#

Completely off topic, but my (portrait-ing) life would be complete if there's some way to patch CC portraits with content patcher.

uncut viper
#

yeah theyre still active on GitHub and such

slender badger
# weak pulsar At least we can spawn them in people's home then!! <:eeveewow:694418084773232671...

Which method to go with comes down to how exactly you want them to function. The two easily doable methods are CC or antisocial NPC:
Both methods:

  • can add dialogue if you want, including portraits
  • can be set to randomly roam around

CC:

  • can fly
  • can easily follow an NPC around a single map
  • can't move between maps

Antisocial NPC:

  • can move between maps, but requires duplicating an NPC's schedule
  • can easily hook into CP conditions/triggers/etc for stuff like changing the sprite after a condition
  • more likely to have compat issues with mods that edit schedules
slender badger
uncut viper
#

despite us talking about Custom companions i still for some reason thought you meant Community Center portraits

devout otter
weak pulsar
slender badger
#

No problem! SDVpufferheart

shut edge
#

"Id": "{{ModID}}_barrierspherebuff", "BuffId": "{{ModID}}_barrierspherebuff",

#

is this gonna cause any problem or is that correct?

brave fable
#

a little context?

shut edge
#

just trying to get my buffs operating correctly. like you have the item with it's buff, and the buffs entry, yeah

#

they will double if you set them the same so leave the item with just the buff id?

#
                    "Name": "{{i18n: barriersphere.Name}}",
                    "DisplayName": "{{i18n: barriersphere.Displayname}}",
                    "Description": "{{i18n: barriersphere.Description}}",
                    "Type": "Basic",
                    "Category": -18,
                    "Price": 2500,
                    "Texture": "{{ModId}}/assets/livestockdinositems",
                    "SpriteIndex": 20,
                    "Edibility": 0,
                    "IsDrink": false,
                    "Buffs": [
                      {
                        "Id": "{{ModID}}_barrierspherebuff",
                        "BuffId": "{{ModID}}_barrierspherebuff",
                        "IconTexture": "{{ModId}}/assets/livestockdinositems",
                        "IconSpriteIndex": 22,
                        "Effects": {
                        "Immunity": 12.0,
                                    },
                        "Duration": 500,
                        "IsDebuff": false,
                        "GlowColor": null,
                        "CustomAttributes": null,
                        "CustomFields": null
                      }
                    ],
                    "GeodeDropsDefaultItems": false,
                    "GeodeDrops": null,
                    "ArtifactSpotChances": null,
                    "ExcludeFromFishingCollection": true,
                    "ExcludeFromShippingCollection": true,
                    "ExcludeFromRandomSale": true,
                    "ContextTags": [
                      "color_brown"
                    ],
                    "CustomFields": null
                  },```
#

this is how i have it, it does work but is probably doubling. mostly just hoping the ID stuff isn't gonna make a clash

brave fable
#

``` at each end for code blocks 💦

shut edge
#

thought it was one, oops

brave fable
#

BuffId is the value used when fetching attributes from Data/Buffs, so if you have a value it'll search that asset for any stat changes. you can leave it null if you aren't changing attributes

#

i was about to confidently announce that Id is what's checked when applying a buff to check for removing another with the same id, but I'm not sure

shut edge
#

yeah it's a little odd

#

slightly confusing

brave fable
#

typically, this is either Food or Drink, or maybe Tipsy (which would use BuffId: 17 as well)

shut edge
#

so for a custom item i prob just want the buffID there, and then the rest of that done in the buffs block?

#
    "Name": "{{ModId}}_pacdango",
    "DisplayName": "{{i18n: items.pacdango}}",
    "Description": "{{i18n: items.pacdangodesc}}",
    "Type": "Cooking",
    "Category": -7,
    "Price": 150,
    "Texture": "{{ModID}}/assets/fruitghostitems",
    "SpriteIndex": 8,
    "ColorOverlayFromNextIndex": false,
    "Edibility": 100,
    "IsDrink": false,
                    "Buffs": [
                      {
                        "Id": "{{ModID}}_pelletdangobuff",
                        "BuffId": "{{ModID}}_pelletdangobuff",
                      }
    "GeodeDropsDefaultItems": false,
    "GeodeDrops": null,
    "ArtifactSpotChances": null,
    "CanBeGivenAsGift": true,
    "CanBeTrashed": true,
    "ExcludeFromFishingCollection": false,
    "ExcludeFromShippingCollection": false,
    "ExcludeFromRandomSale": false,
    "ContextTags": [
      "color_yellow",
      "food_sweet"
    ],
    "CustomFields": null
  },```
#

like this one perhaps

brave fable
#

id use Id: Food and keep buffid as-is to match your Data/Buffs entry

#

for a non-food buff you could probably use the same value for both

shut edge
#

ah ok

#

thanks

brave fable
#

like I'm not sure what a barrier sphere is but if you eat it and you don't want it to stack with food buffs then use Id: Food hahah

shut edge
#

yeah it's a custom item that gives immunity

#

if i make it not food it will work outside of food buffs? i would prefer that

#

you still eat it to activate tho lol

brave fable
#

i have a bowl of lagman korma in front of me instead of game code so i can't say for sure, but as long as you have some way of applying Buffs you can use whatever sort. the Id value should just mean it will replace any other current Buffs with the same Id

shut edge
#

ah i see, that makes sense. cool.

brave fable
#

ultimately though the bit that makes me unsure is the way that the game allows you to stack unique food Buffs that don't affect player attributes, e.g. Ravioli and my custom Kebab, but not Spicy Eel and Lucky Plate

shut edge
#

i mean worst case the player gets extra buffs, right?

#

i'm ok with that

brave fable
#

my kebab uses Id: Food and BuffId: MyCoolKebab

#

so no idea how that works

shut edge
#

yeah there seem to be two or three methods for actual buff effects

#

still not even sure what some of the combat buff options do exactly either lol

brave fable
#

genuinely nothing

#

defence works as expected though iirc, unsure about attack. precision is definitely nothing

shut edge
#

ah is it

#

how broken does this seem: "CombatLevel": 2.0, "FarmingLevel": 0.0, "FishingLevel": 0.0, "MiningLevel": 0.0, "LuckLevel": 1.0, "ForagingLevel": 0.0, "MaxStamina": 100.0, "MagneticRadius": 128.0, "Speed": 3.0, "Defense": 12.0, "Attack": 12.0, "AttackMultiplier": 2.0, "Immunity": 12.0, "KnockbackMultiplier": 0.0, "WeaponSpeedMultiplier": 2.0, "CriticalChanceMultiplier": 7.0, "CriticalPowerMultiplier": 7.0, "WeaponPrecisionMultiplier": 2.0

#

this is a combo item requiring an item made with radiactive ore

brave fable
#

3 speed is already cracked imo hahah, everything else is just bonus

shut edge
#

haha

#

prob will tune the duration down on these yet

#

needs a little testin

brave fable
#

there's a catch to buff attributes though, some attack attributes aren't available in the usual way unless that changed since loc 2.0

shut edge
#

jeez

#

would be nice if the wiki mentioned any of this...haha

brave fable
#

if you have the source code handy, you can check out wherever Data/Buffs is loaded and find the BuffAttributesData or something class it uses

shut edge
#

i don't need em that bad for this one i think

#

good to know tho

brave fable
#

while Buffs can affect these extra combat stats, not all food Buffs can from Data/Buffs

#

i guess that makes locs braised leeks all the more 🆒 and 🆕

shut edge
#

hell yeah

#

i am surprised at how few buff effect choices there are, i came up with a few maybe cursed ideas along the way here but i'm not gonna make em either

#

sprite size, collision, make enemies scared of you, cooldown for weapon specials...

#

smelly debuff that makes you lose friendship with nearby villagers? lol

#

someone can steal these and implement them if they wanna

gentle rose
#

if you'd like, you can put them in the mod ideas repo

brave fable
#

no attribute changes, but makes 2 more projectiles from your slingshot while active

shut edge
#

triple shot, nice

#

that's cool

brave fable
#

i only made the buff since the words 'profiteroles proliferate projectiles' came to mind while brainstorming stuff

shut edge
#

sometimes fun ideas come from the strangest places

brave fable
#

but yeah it'd be fun if in sdv1.7 we could get a few more buff attributes opened up, some of them are already implemented like knockback but we can't set them from Data/Buffs

#

i tried for ages to get knockback going with increasingly massive numbers like 10,000+ before realising i couldn't do it, so I tried with the method above and smacked a bat into another dimension

shut edge
#

haha

#

yeah it feels like MOST stuff in the game is pretty easy to edit for anyone now...other than stuff like buffs and monsters and a few other little specific bits

brave fable
#

yeah even wild trees are opened up a little now. wild

shut edge
#

hmm do i want to open the can of worms of making a toggled neon sign tonight...

#

maybe i'll just test buffs

shut edge
#

woo

#

durations are screwed but that can be fixed

#

somehow duration 500 gave me like several minutes on my previous mod and now 500 is making them just turn off instantly

#

ahh must be some other mod doing that, interesting

#

ok yeah i can stack the buffs, neat

sterile crescent
#

Hi, if I'm translating an i18n can I use quotation marks within quotation marks? Like this:

"example.id":"This is a "random" sentence.",

slender badger
#

No, it'll break things

sterile crescent
#

thanks, i figured

slender badger
#

You'd have to use single quotes or backslash to escape the double quotes

hard fern
#

anyone know what these sparkles are used for on cursors?

slender badger
#

Stars on the shipping screen night sky background

hard fern
#

ooh

#

ty!

slender badger
outer cedar
#

what does this mean?

#

Ok I figured out the problem, i had two seperate dialogue strings leading to the same i18n string!

hard fern
#

is that an elliott trinket?

slender badger
#

Yep, adds trinkets for all of the marriage candidates (and maybe also all the villagers + animals?)

devout otter
#

Yeah, though the villagers are just from one configurable trinket wih generic dialogue.

#

(The author is asking for dialogue suggestions for the villagers.)

lucid iron
#

Wait do they hide the npc somehow Thqnkqng

devout otter
#

I don't think so. They'll just be doppelgangers.

#

Which makes the title They Stay With You have a horror tinge.

#

Like, Elliott staying with me is cool, but if Elliott is actually over there, then who...?

fossil osprey
#

You could say it's some sort of spirit projection, like the sages in Zelda tears of the kingdom

brittle pasture
#

(also is that the android ui. hmm)

lucid iron
#

No harmony wins BOOM

#

Is there ways to just make npc invisible

devout otter
#

Speaking of which, can Trinket Tinker companions be talked to and have portraits?

#

(Not a feature request, to be clear. Just curious.)

lucid iron
#

No

brittle pasture
#

add new trinket ability - banish specified NPC to shadow realm

lucid iron
#

They can have barks

#

Which is that speech bubble stuff

#

But they r intangible

brittle pasture
#

process is irreversible until next day

devout otter
#

Aa I see.

lucid iron
#

Talking to them is technically doable now i think?

slender badger
lucid iron
#

Through BETAS dialogue box which is an action

#

And the action ability, there's just no "interact" proc rn so u can't do the expected click on people and speak to them

lucid iron
brittle pasture
#

speaking of android, I got this log for EMC:
https://smapi.io/log/739c0d833fe54b7ba896db358f6827e3
worth noting is that (IIRC) the current version of EMC is built against 1.6.14; maybe rebuilding it against 1.6.15 would fix the invalid IL error?
(of course the clickCraftingRecipe transpiler can stay broken, no mod is or will-remembers 6480's comment)

ocean sailBOT
#

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

brittle pasture
#

(also legal disclamer just in case this is not a commitment to fixing this mod for android. I will only do the bare minimum to make it working)

#

wait wrong log

#

ok right log edited

calm nebula
#

You can try I guess but it also likely rewriter gone wrong

thin hamlet
#

Is there a tag that prevents minerals from being museum donate-able

brittle pasture
#

not_museum_donatable

#

unfortunately that doesnt prevent your minerals from showing up as a gray icon on the collection. known issue after 1.6.9

thin hamlet
#

Ok cool

tiny zealot
#

PSA: if you are writing new trigger actions and your execution succeeds, you need to set out string error to null and NOT an empty string. if you use an empty string, your action will still succeed but the game will complain about it failing

thin hamlet
#

“Task failed successfully”

tropic walrus
#

Anyone encountered this issue where AcceptBirthdayGift_Positive overwrites specific item birthday responses, which should not happen? I'm on the latest game/CP/SMAPI versions and all

tough crater
#

Have you tried placing the item-specific responses before the _Positive response?

tropic walrus
#

Not really, but even if that did work it sounds like unintended behavior

tiny zealot
#

(rearranging the keys in your dictionary will have no effect)

loud rain
#

hi! how can i make a text box without portrait appearing?

#

im trying but appears a error

tiny zealot
#

if it's dialogue, start the message with %

loud rain
#

its on a event

normal stag
#

hiii i need help

#

im a begginer mod maker and does anyone have like a template for a custom npc or can tell me what to do lol

#

like how do you actually code the npc into the game

drowsy pewter
#

!npc

ocean sailBOT
#
Creating a Custom NPC

Keep in mind that making NPCs is a complex process that requires learning many different aspects of Stardew modding.
Here are a few links that can help get you started on all that you need to know:

tiny zealot
# loud rain i tried but didn’t work

in an event, you can use one of:
message \"Your text here.\" (makes the box small, to fit the text)
speak NPC \"%Your text here.\" (regular dialogue box size)
you can even do the % inside a string of boxes:
speak NPC \"Portrait here.#$b#%No portrait here.#$b#Portrait here.\" (second box has no portrait. others do)

brittle pagoda
#

weird question but is it possible to remove code from SVE files of an npc other than the parts where they're needed in cutscenes?

hard fern
#

why would you need to do that?

#

or even want to, i can only imagine that would come with its own problems

brittle pagoda
#

BCSweat i want this npc to be romancable but sve throws a whole wrench in that, i want both to work. ik its a tall order this is just my last ditch effort

gentle rose
brittle pagoda
#

it's marlon and i want it to work with werewolfmaster's mod for him

gentle rose
#

I see, but it’s loading the SVE version of marlon instead?

brittle pagoda
#

i didnt dare to test it out but im pretty sure it would do weird stuff like duplicate the character

#

or yeah sve overwrites the other mod

gentle rose
#

tbh, knowing sve, I doubt you can get both to work together

brittle pagoda
#

all good, i knew itd be impossible lol thanks for the answers!

devout otter
#

Werewolfmaster's Marlon is Marlon. SVE Marlon is MarlonFay. So yeah you'd have duplicates.

#

The simplest way to do what you want is just delete MarlonFay's disposition

gentle rose
#

sve has certain things depend on marlon though, like the rusty key

devout otter
#

And then change any event involving MarlonFay to use a temporary actor instead.

brittle ledge
#

Oh yeah, Avi ran into a ton of problems with SVE's marlon implementation

brittle pagoda
#

yeah it confuses me tho cause there is code for normal marlon in sve's files, probly just too deep for me to understand

gentle rose
#

and also I’m guessing they do something to hide the original marlon

brittle ledge
#

@velvet narwhal if you feel inclined to share your wisdom

brittle ledge
devout otter
gentle rose
#

I just mean that just loading another marlon mod may end up with him not being around through whatever method they’re using to hide him for the most part

devout otter
#

Alternatively you can just hijack MarlonFay and make him load Werewolfmaster's dialogues instead.

gentle rose
#

(that was at tia haha, sorry)

hard fern
#

...so sve's marlon is cursed in some ways

brittle pagoda
tough crater
tiny zealot
# tough crater So each `Entry` is a dictionary?

the dialogue assets are, in particular (string-to-string dictionaries)
dictionary is just a common word for this sort of data type. the keys are unordered and allow arbitrary lookup. what affects priority on the keys is the order the game checks for them, not the order they are listed in the data

tough crater
#

Coding is so nerdy I love it

tiny zealot
#

@ivory plume I am getting some odd behavior around the parsing of $action commands within dialogue strings. At this time the trouble seems to be caused by running multiple actions at different points in the string while also having the first dialogue command be $action. Here is my repro case (running in plain SMAPI, no additional mods installed):
debug speech Abigail "Strange...#$b#$action AddMoney 50#This version seems to work.#$b#$action AddMoney 50#On to the next example!$h"
debug speech Abigail "$action AddMoney 50#This version gets a literal curly brace and cuts off here.#$b#$action AddMoney 50#This dialogue is not displayed, but the preceding action runs.$s"
aside from the text content, the only difference is that the first example starts with regular dialogue and works as expected, while the second one fails to connect to the final command and renders the { connecting character in the middle dialogue instead.
I assume this is unintended, but perhaps I have missed a caveat somewhere?

thin hamlet
flat sluice
flat sluice
gentle rose
#

there’s no difference in the example ichor provided afaik, but using other actions there could be differences, since $action allows you to use any trigger action.

tiny zealot
flat sluice
# tiny zealot would you believe i found this because, for my purposes, it is important to run ...

OK, I believe you, even though I can't think of any situation why. But that is OK, don't worry about that.
If it is for dialogue (because of the command, I guess it is), then I don't know. Writing #$b# at the very start of the dialogue or creating some dummy/null dialogue, which would have nothing in it, wouldn't help - my guess is that it would break the dialogue even more than it is right now.

tiny zealot
#

hmm the dummy dialogue is a good point. one second

#

nah, that doesn't work

flat sluice
flat sluice
calm nebula
tiny zealot
gentle rose
#

you can also do empty fields in various string things using [EscapedText], though idk if it would work here

tiny zealot
#

an excerpt for everyone's enjoyment. having a normal day over here

                    }
                }
                goto IL_08a5;
                IL_01b6:
                if (!(commandToken == "$k"))
                {
                    goto IL_08a2;
                }
                goto IL_08a5;
                IL_08a2:
                handledCommand = false;
                goto IL_08a5;
                IL_020e:
                if (!(commandToken == "$q"))
                {
                    goto IL_08a2;
                }```
flint stratus
#

Curious if there is a way to make a custom NPC wear a certain outfit on certain days. (IE. My character does drag on saturdays, so I was going to have them in a drag outfit if possible only on saturdays) I cannot seem to find anything from looking online, or I am missing the thing I need. So I wanted to reach out here, to see if anyone else had any knowledge!

hallow prism
#

yes you can

#

using the appearance feature

#

you basically can put whatever condition and priority you want here

flint stratus
#

!! Ahh thank you. I will look into it more with that as my focus

slender badger
#
Stardew Modding Wiki

If you want to add seasonal outfits for your NPC, there's two ways you can do this: the token way or the Appearances way. Appearances is a new code structure added in SDV 1.6, so if you're looking at an older NPC's code for reference, they'll most likely be using the token way. The main difference between the two is that the token way is simpler...

#

!dsv You can also look through some of DSV's code for particular outfits (a snippet of it is used as the example code in the tutorial), although be warned that it's a pretty complex beast, haha

ocean sailBOT
#

Diverse Stardew Valley (https://www.nexusmods.com/stardewvalley/mods/17059) is an expansion mod that adds extensive seasonal, festival, and location-specific outfits and alternate diversity redesigns for NPCs supported by dialogue, event edits, and map edits. Outfits are available for either the vanilla or alternate character designs and nearly every aspect of DSV can be configured individually. See the DSV website for more details, including a list of mods with special compatibility: https://diversestardewvalley.weebly.com/

flint stratus
#

Oh yes another mod to disect and gain knowledge from
Thank you for fueling my powers!! 😈😈

slender badger
#

An outfit that's used all day on Saturday is pretty simple though! If you want to get more complex, you can also have the outfit apply at a particular time and/or in a particular location, like for example if your character is a drag performer who performs on Saturday nights at the saloon

#

There's a lot of different conditions that can be used depending on what specifics you want

flint stratus
#

Amazingggg ❤️

tiny zealot
#

Appearance, another incredible 1.6 feature SDVpufferheart

wanton pebble
#

(My personal mod closet for Abigail and Leah agrees with that statement wholeheartedly XD)

slender badger
#

(Considering SCA uses your code anyway, you could probably put together an add-on pack of some sort that would edit the SCA Appearances to slot in alongside DSV's 😆 Though the art would be inconsistent)

wanton pebble
#

So

#

That's what I did in my personal mod closet, and I edited the art to be consistent (i.e. SCA style head, DSV outfit) XD

#

Don't worry, it shall never leave my computer though

#

If it does, full permission to go SDVpufferknife on me

slender badger
#

The sprite inconsistency doesn't bother you? 😆

wanton pebble
#

I edited the sprites too!

slender badger
#

Oh wow, dedication 😆

wanton pebble
#

Well, unless hoods

#

Look I don't know if I was possessed by the spirit of Leah or something but I knocked out all of them a while back in like a week

flint stratus
#

Tbh it’s really like that!! I just get my bursts of motivation and work non stop until I’m out of juice 😅😅

weak pulsar
#

Anyone...used the mod Nature In the Valley?

Bc that is the perfect framework for a lil' Pokemon collecting it looks like eyess

flint stratus
#

Low-key love that idea

acoustic summit
#

Actually though, hol up. Reskin Ivy to be Prof. Oak. Enable content packs only

#

You literally get a pokemon catching sim

weak pulsar
#

PROFESSOR IVY IS RIGHT THERE (in the anime)

acoustic summit
#

If you needed any help setting that up I could help you, though the data format isnt too complex

acoustic summit
weak pulsar
#

It's been added to my every-growing pokemon to-do list wheeze

velvet narwhal
#

I just woke up and I'm about to head to work so

patent lanceBOT
#

oh aviroen you sweet summer child. trusting me with such a task? all right ;) (#6493038) (7h | <t:1737767862>)

velvet narwhal
#

Tldr: it's annoying
I have conditioned includes depending on if SVE is installed or not

latent mauve
#

I am seriously debating reaching out to see if someone is willing to collaborate with me on the Zelda NPC mod at some point if I can't work out this wolf sprite xD

rigid musk
#

Iirc SVE just takes Marlon [vanilla] and sends him to the shadow realm and makes him invisible

#

Though all the other stuff they do with it is... also cursed

#

I did a similar thing with the vanilla Mr.Qi (I was just gonna overwrite him NPC wise but vanilla itself does some weird stuff with him so I just figured it was easier to send that npc to the shadow realm too)

#

Also if I wanted to make it so that an NPC doesn't spawn until after a player visits the desert (specifically to stop him from going anywhere ever until the player unlocks the casino) would that just be a when condition for the whole casino thing? or would it be better if I just added a condition for his schedule(s) to not take place until after the casino is unlocked?

latent mauve
#

I think you can do it for the NPC themselves (look at Kent's Data/Characters entry for an example there)

rigid musk
#

Didn't even think about Kent actually

blissful heart
#

Hi guys I'd like to make a mod which allows players to decompose iron (gold)bars into copper (iron)bars ,is there a similar mod already?I can't find one on nexus. I'd like to know if all the things I need to do in code is just add a new recipe to "Data/Crafting recipes"? thanks ❤️

velvet narwhal
#

Oops wrong button lmao

#

Sve uses Marlon and marlonfay for events

slender badger
tiny zealot
blissful heart
#

Ok I'll try to search it,thanks a lot!☺️

rigid musk
#

I also made a mod for that lol mine is called Transmutation Time (though iirc I recommended using a different mod in my mod page because they had a bunch of other stuff in it) - it still works with 1.6 though

#

So I have a config option to toggle whether or not crops added by my mod count towards perfection - by default it should be set to true but for some reason it only works when you check the box off?

#

ah wait I see what I did I think ...

tiny zealot
#

i think the field is called ExcludeFromPerfection or something so you may have it reversed

rigid musk
#

Yep that's exactly what I did

brittle ledge
rigid musk
velvet narwhal
#

Isn't that the club card

slender badger
#

PLAYER_VISITED_LOCATION Host Casino would work

rigid musk
#

it is though I cant find a GSQ that relates specifically to the wallet item for it / having the club card

#

That's what I was thinking :3

#

its so weird to see him walking around in the valley

calm nebula
#

(Or use "Any")

#

All wallet items are mailflags now too

tiny zealot
#

Any instead of Host will match anybody having been there, yeah

brazen berry
#

Hi folks, i have a potentially silly request, I really like those prismatic clothes and the cowboy hat due to the color changing but i find it frustrating because there are no prismatic boots, does anyone know of a mod that will add color changing boots that matches the color of the rest of the suit?

rigid musk
#

There's probably a fashion sense mod that does that

#

... or just Fashion sense

brazen berry
#

i'm trying to make one myself, but i'm a bit lost on that side so 😄

#

was hoping

rigid musk
#

in general*

brazen berry
#

ok i'll check Fashion Sense out

rigid musk
#

I cant recall if it actually lets you make your shoes prismatic or not but I know it lets you dye them so perhaps

tiny zealot
brittle ledge
brazen berry
#

i think i'll continue to try and just make my mod calling it Cowboy Up 😄

#

just making a full set of the Cowboy gear to look and function like the cowboy hat

#

oh i guess i should be more patient as i see there's a pair of Enchanted Cowboy Boots, i wonder if those color change already, will save me time on this mod

brittle ledge
brazen berry
#

oh nice! i hadn't seen that one yet

#

i'll check it out

brittle ledge
brazen berry
#

i wonder why those weren't showing up when i searched Prismatic on nexus, weird, ok thank you all for being so kind

teal bridge
#

Those days when you look at your 17-item to-do list and go "nope" to every single one of them...

#

Has anyone ever tried and/or figured out a way to use Publicizer without automatically creating a hard dependency? (i.e. if the publicized code is only actually run when some API is detected?)

rigid musk
#

I was wondering why he wasn't spawning 😭

calm nebula
#

What you describe is how it actually works in c#

#

It's in smapi but is difficult because the checks are run before you are loaded

#

I've in the past theorized that instead I would just put code in a different assembly and have my mod load that

#

One of my many "it works in theory" but I never tested

teal bridge
#

Hm, so I'd have to... hide it from SMAPI somehow.

calm nebula
#

Yup, so my theory was I would have the mod dynamically load a subassrmvly

#

Which would not be scanned by smapi

teal bridge
#

Yeah, like stick an entire byte array (or if that still gets scanned, a base64 string) with the entire compiled code. But the build/deploy process for that, yuck...

uncut viper
#

is there an issue with just putting the publicized stuff after a "if (mod is loaded)" check? i dunno much about publicizer stuff still

teal bridge
#

Yeah, the point is the dependency gets enforced on startup, before even the mod entry code runs.

#

Doesn't matter that the code only runs conditionally - publicize another mod and yours will automatically crash if that mod is not installed.

#

I suppose maybe the subassembly thing is not actually that bad, I could just set it up as another project and then have a build step that dumps it into a mod asset or something.

calm nebula
#

Basically!

teal bridge
#

This feels dirtier than Harmony, Reflection and Publicizer all combined. I'd almost rather try to Harmony-patch SMAPI, but I guess even that is not an option because by the time it gets to run it's already too late.

brazen berry
#

My biggest wish was for smapi to be able to load in new mods without having to restart the game

calm nebula
#

Yeah. Thankfully for me 1.6 rendered the issue moot

#

Then I retired anyways

mighty quest
#

Just do everything with reflection

#

object is your friend

teal bridge
#

Hell no, that's why I switched to publicizer in the first place.

#

It's one thing when you just need to call a method or pull one field, it's quite another when you need an entire hierarchical data model.

ornate trellis
lucid iron
#

1x2 footprint then bolbthinking

ornate trellis
#

if it works, just came to my mind just now lol

lucid iron
#

It should work yea, though ofc it's necessary to pick a input item still

#

And maybe limit the daily convert count to like 4 monS

ornate trellis
lucid iron
#

Deciding on muh balance is hard desu

fathom hound
#

[SMAPI] - Meowmere Weapons 1.0.0 because its DLL 'MeowmereWeapons.dll' doesn't exist.

Is the .dll file the only thing im missing for my C# mod? ive been reading yellow book but with all the medications im on, i feel really foggy and i just want this released already ;/

lucid iron
#

Do you have a ModEntry : Mod

fathom hound
#

internal sealed class ModEntry : Mod i didnt add this

lucid iron
#

Hm your cs has random csproj stuff

#

I recommend taking another look at a full c# mod and start from the top, ultimately you need to build a dll from the cs source code in a way that smapi can load

fathom hound
#

thank you, do you have a recommendation to study from

fathom hound
#

ah beat me to it, tyty

lucid iron
#

This is my smallest mod that consists of just 1 Harmony patch

fathom hound
#

appreciate chu

lucid iron
#

(ignore that it is a transpiler, the other stuff is the same)

#

The itemgroup thing is actually supposed to go here

#

This packages [CP] Sprinkler Attachments with the mod

fathom hound
#

thank you

teal bridge
#

If you're building C# mods, you really should use Visual Studio or Rider. Avoid VSCode for that if you can. If you must use VSCode, you have to install the .NET/C# tools for it, cannot just edit and deploy source as you would for a content pack.

fathom hound
#

yeah im thinking of just scrapping it and starting over in visual studio, im having multiple files and just confusing myself.

teal bridge
#

Well there will be multiple files. There is always at least a .csproj, at least one .cs file and a manifest.json (or the equivalent with Khloe's builder, which you're probably not using here).

#

But that is your source. The DLL is the mod.

fathom hound
#

When I create a new project it doesn't come up as .dll though, did I do something wrong

acoustic summit
#

TIL 4 string comparisons are better than parsing it for 4 int comparisons, mb! SDVpufferfingerguns(I'll believe profiler)

teal bridge
#

You're used to using VSCode as an editor (which is what it actually is, primarily), but you need an IDE/Compiler here.

#

(And yes, to the peanut gallery, I'm glossing over CLI stuff to avoid adding confusion)

fathom hound
#

gonna try doing this again

uncut viper
#

(and here i was gonna suggest just writing the .dll manually byte by byte)

teal bridge
#

They don't cover Harmony, but Chu's example should help with that.

#

If you follow those instructions you will end up with a project like Chu's (just without the Harmony bits)

calm nebula
#

Simd accel

fathom hound
#

does the file location matter, i see its different on the wiki

uncut viper
#

you dont want to put it in your mods folder

fathom hound
#

ah

acoustic summit
#

Yeah it was just single char like the options being 0-4

fathom hound
#

i see now ty

uncut viper
#

these files are not the mod. these files are essentially instructions that will tell Visual Studio how to package them into a mod

#

and the ModBuildConfig thing will place it in your Mods folder for you

fathom hound
#

Thank you

tropic walrus
#

Within a Special Order, can the "Message" field be used for non-delivery orders? The wiki doesn't even list this field

#

I want to have my requester have a message for completing a fish special order, without relying on a mailflag + CT for it

uncut viper
calm nebula
tropic walrus
#

I see, thanks for the answer.

uncut viper
#

after a quick check, no other objective type looks for a Message

#

custom modded objective types may do so but that would be documented in their mod pages and is not very relevant here i assume

faint ingot
#

I noticed some weird behavior with a custom special order in my mod

#

it requires you to deliver a mead to my NPC, and deliver 5 mead to pierre's box. If you donate to the box first, it works as expected.

#

but if you deliver to the NCP first, you give them 2 instead of 1. Then if you go to the donation box, the extra one you gave to the NPC is already there.

#

also when delivering to the NPC first it shows their gift reception dialogue, and presumably it triggers heart effects (don't know this for sure)

#

so in the end it works out, requirements wise, but definitely raises eyebrows

lucid iron
#

Did both donate boxes have the same id

faint ingot
#

there's not two donate boxes. one is a donate (pierre's box) and the other is a deliver (give to the npc)

lucid iron
#

I wonder if it's makes a difference if npc needed 2 mead

fathom hound
#

Was I supposed to format it like this? I tried adding the code after this and am getting errors.

blissful panther
#

Lines 44-54 need to be inside a class somewhere. So adding a new line after line 41 and pasting it there would be a start!

I never use the Harmony annotations though, so I couldn't tell you anything past that point. SDVkrobusgiggle

fathom hound
#

Thank you.

#

Yay. One step closer.

teal bridge
#

Using Harmony annotations requires you to add one line somewhere to invoke the detection. But I don't use the annotations either so I can't be specific. It's somewhere on the wiki.

fathom hound
#

I found it, thank you.

teal bridge
#

That just gives you access to Harmony, it's not the line I'm talking about.

fathom hound
#

Ah

teal bridge
#

You do need that as well, but you need a line of code to invoke the annotations.

fathom hound
rigid musk
#

Is there a way to edit the joja development forms without C# ?

teal bridge
#

That's the non-annotation method, yeah. There's a different syntax for annotations.

#

You can also use that method and just delete the [HarmonyXyz] attributes.

midnight bear
#

Hey guys, I'm new here and I want to know if anyone would like to make a mod for me cause I don't got time to earn C# Message me privately if you would

finite ginkgo
#

for harmony annotations you need something like this

var harmony = new Harmony(ModManifest.UniqueID);

harmony.PatchAll(Assembly.GetExecutingAssembly());
//or
harmony.PatchAll(typeof(ModEntry).Assembly);
//either will work, choose one
rigid musk
#

!modideas

ocean sailBOT
#

If you have a mod idea that you aren't planning to make yourself, you can put it in the mod ideas github: https://github.com/StardewModders/mod-ideas

However, this does not mean anyone is guaranteed to work on your idea—modders who are looking for ideas sometimes go through and work on what they find interesting off this list. If you want to pay someone to make your mod idea, there are a few people who do commissions (mostly art, sometimes code); you can ask around, search usernames for the word comms, or see !commissions.

rigid musk
#

or

#

!commissions

ocean sailBOT
opaque cobalt
#

hey, I'm having a weird issue where smapi freezes while typing. Is there a good way to solve this besides closing smapi and restarting the game?

rigid musk
#

@midnight bear

uncut viper
#

you can just do Harmony.PatchAll()

rigid musk
rigid musk
finite ginkgo
uncut viper
#

meanwhile i was confused bc ive never seen someone specify the assembly lol

opaque cobalt
uncut viper
#

i dont often look at the actual patchall call though tbf

opaque cobalt
#

I can show in a VC if that'd make more sense

uncut viper
#

that seems more like a modded-help question

#

or modded tech support or w/e the channel is called

rigid musk
#

yeah that seems more like a tech issue cause that... well ive never really run into that

#

i mean sometimes i forget to press enter and wonder why my smapi console is being weird but its never done That

lucid iron
#

This is probably some shenanigans with the terminal u r using

opaque cobalt
#

nevermind, my computer just had a stroke apparently. It unfroze after letting it sit for 2minutes.

Side, question. Is there anything that could cause a cutscene to not use modded portraits or sprites? Testing event id 38 (Penny bathhouse) and it is using vanilla portraits/characters when I thought it would use the ones I've created like it did in other events

lucid iron
#

Check if it's only event repeater or any console command

fathom hound
#

Where would I fix this?

rigid musk
#

in your manifest I think

#

something up with your version number

fathom hound
lusty elm
#

it wants a minimum value for version for content patcher i think

uncut viper
#

you must specify the version in the csproj

rigid musk
#

something like this yeah

uncut viper
#

that is not relevant to that error

rigid musk
#

oh

fathom hound
#

thanks, and yeah, im not sure why im having difficulty absorbing what i read from online

uncut viper
#

it is a ModBuildConfig error for a C# mod csproj

rigid musk
#

Ohh welp
C# isssss far outside my wheelhouse

#

For now

lusty elm
#

Time to start the long process of detailing. rooComfy

blissful panther
#

I kinda want using these stairs to drain extra stamina. SDVkrobusgiggle /j

lusty elm
#

its one of those things that might end up changing cuz it doesnt have that proper feeling of "depth", so i'm likely to play around and make it seem like if it can feel better, or maybe make a rope so you "rappel" down or something

blissful panther
#

Yeah, height and depth is easier to obscure/portray with lots of smaller... layers I guess you could call it?

lucid iron
#

What if u just go in a cave an it warp u up

#

Implied 3000 stairs on the inside

lusty elm
#

I've done that before as well, but yeah i could just put a little cave at the top you pop out of, be kinda funny actually rooThink

blissful panther
#

Easy solution...

#

Big ol' Sonic spring.

frail moss
#

hey im back (but nobody care so im passing this) i have some issu with texture, when i take my crops the crops on the ground transform on a line, i dont know where it from so if someone can help me, also i finish to understand how spriteindex work pls

#

if i put space its make the crops invisible

lucid iron
#

I remember there was this 1 area in pokemon ultra sun where u r going around big rocky area but sometimes u go outside

#

U have space for a little balcony here if u do 2 sets of cave in/out

lusty elm
#

i dont want them seeing the cliffs up close if i can avoid it, because we only have like a dozen cliff tiles and they dont exactly mesh into each other super well

#

so it looks wonky, to me at least

lucid iron
#

Cliff struggles monS

#

This would certainly hide most of the cliff then

lusty elm
#

ye

drowsy pewter
#

vines everywhere

lusty elm
blissful panther
#

Oh, that feels really nice.

normal trout
#

I have tried searching so many different key words in nexus and cannot find what I'm looking for. Does a decent mod exist anymore that lets you cook from storage anywhere on your farm? Similar to a craft from storage type thing? If not, would it take C# to make that happen, or could it be done with json files? EDIT: disregard. I'm doing some further digging into something else that may scratch the itch and make this question not a priority for me anymore.

lusty elm
leaden raptor
#

it looks gorgeous!!!!!! wowowowo

lusty elm
lusty elm
light bramble
#

lol

thin hamlet
#

Do not play, 95% of play time is ads

#

Anyways, cant wait to make some rocks!

lusty elm
#

is it possible to make a room where you can apply wallpaper to it?, that isnt the farmhouse

gentle rose
#

there's a tile property you apply to the top of the wall I believe, I can't remember what it is though

#

let me try to find it

latent mauve
#

If it's not the farmhouse or a shed, I think you also need to make it a Decoratable Location

#

in addition to the Floor and Wall IDs

gentle rose
#

-# I was just going to say you were one of the people I saw looking at this haha

latent mauve
#

I'm the test case for the custom renovation weirdness with this, LOL (which has since been fixed)

lusty elm
#

I have a Bonus Cellar on one of my maps, and Someone just mentioned they cant change the wallpaper, so i'm like "you can do that?" and trying to figure out how to accomidate them

latent mauve
#

Well, you need Map Properties and TileData objects for the Floor and Wall IDs, for a start.

gentle rose
#

I can't find the tile property that needs to be set right now, but I do remember that it needs to be set on the top tile of the wallpaper/flooring in each column for it to work correctly (and I assume it only works when the walls are the standard height)

lusty elm
#

is there a wiki page that has the info? cuz I can't find the info.

latent mauve
#

There is something on the wiki, but it's scattered across a few pages, one moment.

lusty elm
#

"Wallpaper and flooring can now be applied to custom map tiles if their tilesheet ID contains walls_and_floors." is the only thing i could find related to it in maps, buildings, 1.6 migration and 1.6.9 migration rooThink

gentle rose
latent mauve
#

here's some helpful screenshots, the first is the Map Properties

#

I'll pull the wiki info momentarily

#

the initial FloorID and WallID documentation is from the 1.5.5 migration guide.

#

It's still waiting to be merged into the wiki pages for Modding:Wallpaper and Flooring and Modding:Maps, but I fear editing the wiki xD

gentle rose
#

I get that haha, I was so scared to edit something into the modding namespace the other day even though I do edit the main wiki sometimes

lucid iron
#

the tldr of things it that

latent mauve
#

I need to just publish my bathroom reno mod so I can point people to it as an example, LOL

lucid iron
#

u need to make the location have type DecoratableLocation

gaunt orbit
lucid iron
#

which u can do with Data/Location edit

gaunt orbit
#

Unfortunately that makes it mutually incompatible with cellars

lucid iron
#

then u need to set up ur tmx to have all the wall floor stuff

#

what i actually recommend u to do is to just make a PIF room out of your map

#

all PIF rooms are decoratable

lusty elm
#

PIF?

latent mauve
#

It's a framework for custom room instances

lusty elm
lucid iron
#

not quite

#

u can make places caskable without it being a cellar

latent mauve
#

the only negative in this case for a PIF cellar would be that in multiplayer, an offline player's casks won't age, and PIF rooms are inaccessible if the owner of that room is offline.

lucid iron
#

but game forces cellar to create as cellar type iirc

lusty elm
#

ah, i'm just calling it a cellar and its just a room that has Casks enabled.

lucid iron
#

by using pif ppl get rooms that are caskable and placable anywhere in their house

#

in that case u should do it through the DecoratableLocation thing Bolb

#
"CreateOnLoad": {
  "MapPath": "YourMapTarget",
  "Type": "StardewValley.Locations.DecoratableLocation",
  "AlwaysActive": true
},
lusty elm
#

okay so its a CP thing then

lucid iron
#

yea need Data/Locations

#

dont think Custom_Locations let u

lusty elm
#

yeah i'm using Data/Locations for this map already, so it shouldn't be a problem

uncut viper
#

customlocations doesnt let you do like anything

lucid iron
#

i dunno what happens to existing saves though

latent mauve
#

Custom Locations should be avoided when possible anyway, it's outdated and the rewriter potentially won't catch it if you use newer features/format versions of CP anyway.

lucid iron
#

think will it just work

uncut viper
#

customlocations will still work even with newer format versions, but yes it should be avoided regardless

latent mauve
#

FormerLocationNames is all you need to fix CustomLocations going forward to Data/Locations, as far as the location not breaking mid-save

gaunt orbit
lucid iron
#

i meant like

#

is it safe to change CreateOnLoad.Type mid save

latent mauve
#

You wouldn't be able to patch reload it and have the map work, but the OnLoad in this case just updates when you load the save file, and it will change then.

lucid iron
#

yay ok

gaunt orbit
#

But you'd have to save and reload to see changes take effect

uncut viper
#

what if i change the CreateOnLoad.Type to ArchaeologyHouse

gaunt orbit
#

No idea

uncut viper
#

sounds fun

gentle rose
#

question to c# authors: do you guys typically stick to the one class per file rule?

uncut viper
#

it depends on the class

frail moss
#

how can i make a random system when i break a bloc ? for explain i break a stone i get stone or coal etc

gaunt orbit
gentle rose
#

I'm making two transpilers that work almost identically and will require a shared method, idk if I should do three separate files (each transpiler and a class for the method) or just throw them in one file

uncut viper
#

i just put them all in one class

#

one class called WhateverImPatching and then 3 different functions inside it, two transpilers and one method

gaunt orbit
#

For patches I usually group them into classes based on purpose

#

Not based on target

uncut viper
#

my RelationshipChanged trigger for example is one class, in a single file RelationshipChanged.cs, and in that class is 3 helper methods and 5 transpilers

#

the transpilers themselves dont need their own class

gentle rose
#

...idk why I didn't think of that SBVLmaoDog ty button

#

I think it's because I'm using annotations on the whole class right now and forgot there are other options

uncut viper
#

yeah you just need one [HarmonyPatch] annotation on the overall class

#

more specific annotations on the functions inside

opaque cobalt
#

Now I'm fully stumped. Using sinz event viewer to force events. In event id 34, Penny does use the mod sprites and such, but in event 38 (her 10 heart), she is seemingly using vanilla files. Is there something obvious that I'm missing? I wonder if whatever I'm missing is also causing the game to use vanilla assets for the sprite of penny when you click on her portrait in the social tab (the actual thing in social tab is her mod sprites oddly)
https://smapi.io/json/none/9debe6cccc944c5b96383bc7d873c30c
https://smapi.io/log/4474e3c2f8aa4d0fb4bad7e4e3aba30b

ocean sailBOT
#

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

lucid iron
#

i do 1 namespace per file but ill die if im forced to do strict 1 class per file

uncut viper
#

i just havent had a situation where i need it yet but i also wouldnt have a problem with multiple classes per file

#

or well not needed, but no situation where it wouldve come up anyway

#

multiple namespaces per file sounds fuckin awful

lucid iron
#

it comes up more for data model classes

gentle rose
#

is there a way to apply one transpiler to multiple methods? they require the literal exact same transpiler

lucid iron
#

because those r often 2 or more nested custom types

uncut viper
#

makes sense

lucid iron
#

just do it

uncut viper
#

i did have multiple per file for one of my data models at one point but it never made it to commit, i moved em all to separate files but not to follow any rules just preferred it at the time

#

uhhh

#

actually i ran into some issue with that

#

with annotations

#

it was only ever checking one of the annotations on the method

#

and thus only transpiling one method

lucid iron
#
harmony.Patch(
    original: AccessTools.Method(typeof(Building), nameof(Building.draw)),
    transpiler: new HarmonyMethod(typeof(DrawLayerExt), nameof(Building_draw_Transpiler))
);
harmony.Patch(
    original: AccessTools.Method(typeof(Building), nameof(Building.drawInConstruction)),
    transpiler: new HarmonyMethod(typeof(DrawLayerExt), nameof(Building_draw_Transpiler))
);
harmony.Patch(
    original: AccessTools.Method(typeof(Building), nameof(Building.drawBackground)),
    transpiler: new HarmonyMethod(typeof(DrawLayerExt), nameof(Building_draw_Transpiler))
);
#

oh well, annotations L i guess

uncut viper
#

you can ofc do it the manual way easily but i assumed iro wanted to keep using annotations

gentle rose
#

ig in a pinch I can probably just wrap it in two identical wrapper functions (or just do it manually lol)

uncut viper
#

i had to use TargetMethods

#

(in this case the [HarmonyTranspiler] annotation is not actually necessary bc the function is named Transpiler but i didnt bother removing it)

hybrid talon
gentle rose
#

on a side note, with transpilers right now I keep bouncing between "this seems like an issue if the code is changed" and "this transpiler would have to be fixed if it changes in that way anyway so not dong this fixes nothing"

uncut viper
#

(TargetMethods has no access keyword or w/e bc i copied it from the harmony docs and only just realized it doesnt)

#

ModConfig is where itd make easy sense to me to use multiple classes per file! ive not needed custom data models in any of my configs yet tho myself

gentle rose
uncut viper
#

yeah theres no harm obv but im gonna fix it anyway later bc it bothers me lol

hybrid talon
#

For some reason it took me so long to think of making extra classes for storing config values as a way to organize my config file

#

It was very simple to implement but just never occured to me

lucid iron
#

This seems annoying though

#

In terms of accessing value i want from C#

#

What is your particular use case?

uncut viper
#

maybe me and spacefireworks are thinking of different things but i was thinking id have like. a ModConfig class and inside that class i want to store data about say a source rectangle. instead of having four different config values, each one being an int for x y width and hneight, id have one SourceRect definition; config value, and then in the same file but in a different class id define the SourceRect class

#

(ignore the fact that Rectangle is already a class that exists)

#

so it'd still be ModConfig.definition.X or w/e

lusty elm
#

well, I got the wallpapaer working.... but not the flooring rooThink

gentle rose
#

ugh I just realised that the two methods' transpilers actually do differ by like two ldloc.whatever being different SDVpufferflat

lucid iron
#

Oh yeah that makes sense and i have done it b4 with enums specifically

gentle rose
#

pain

lucid iron
#

I guess i just didn't think of them as classes cus they r kind of fake

uncut viper
#

iro, do you care what the actual number of the ldloc is?

calm nebula
#

Especially for records

uncut viper
#

or do you just need to know that it IS an ldloc?

gentle rose
#

I do, I need to insert them at some point

calm nebula
#

Pathos puts them in separate classes and I sure as hell don't

uncut viper
#

that should still be fine

calm nebula
uncut viper
#

new CodeMatch(op => op.IsLdloc())

#

store its operand and use it again later

#

coincidentally enough also used in that transpiler i just sent you

gentle rose
#

that works for the one I need to match against, but the one I need to insert is set in some random other part of the code which is different in the two methods unfortunately

uncut viper
#

well, to me that sounds like they couldnt be identical transpilers in the first place but not bc of the ldloc being different

calm nebula
#

Only the most trivial of atra mods have only one class

gentle rose
#

(the identical part is because they're both transpiling literally the same line of code copy pasted across the two methods lol, it's just that I need to use a single variable in the part I insert which is set in different ways)

reef kiln
#

If anyone is in contact with the author of Luna Astray. You should let them know that they have a pretty seroius bug where you get 50 crops per harvest from plants.
I am thinking it is this
"HarvestMinStack": 3,
"HarvestMaxStack": 3,
"HarvestMaxIncreasePerFarmingLevel": 10.0,
Blueberries and potatoes both have this at 0. I fixed my copy as it was game breaking how much money I was making.

uncut viper
#

my modjam entry didnt even have just one class and that was especially lazy

uncut viper
gentle rose
uncut viper
#

how long ago was it updated

reef kiln
#

April. and the bug has been reported on the mod page.

gentle rose
#

if it's been reported, then either the author is aware or is no longer maintaining the mod tbh

uncut viper
#

sounds like theres not much point in broadcasting it to no one in particular in here then

reef kiln
#

I was not sure if they just didn't check nexus.

calm nebula
#

Raf is in fucking medical school lol

uncut viper
#

you can see they have logged into nexus

calm nebula
#

I can imagine it isn't on the top of his todo list

#

That is the thing with mods

uncut viper
#

he does also have his own discord, too

calm nebula
#

They are, fundamentally, at the fucking bottom of the todo list, barely above "vacuum the floor"

uncut viper
#

(an amusing example bc ive literally chosen to vacuum my floor over fixing a bug before to give me time to ponder it)

gentle rose
#

generally it's safe to assume that if it's been reported and the author hasn't acted on it, that it's because the author isn't dealing with that stuff right now (or possibly ever again) for some reason or another

calm nebula
#

And Raf is in fucking medical school

uncut viper
#

do you think medical school was more or less challenging than updating RSV for 1.6 /j

gentle rose
# calm nebula And Raf is in fucking medical school

(true, but ngl the reason for not addressing mods could be that someone decided to go on a year long tropical vacation and it would still be a perfectly valid reason not to update mods for all I personally care lol)

lusty elm
#

hmmm is there a way to force lamps on in an interior map? cuz i think they are set to only light up at night now?

lucid iron
#

u can set ambiant lighting low maybe?

hallow prism
lucid iron
#

hm i crashed all my mods by attempting to load game while mod is building

#

BadImageFormatException: An attempt was made to load a program with an incorrect format. blobcatgooglyblep

gentle rose
#

I'm currently testing the limits of how much free disk space stardew needs before giving up, we're at under 50MiB right now... I'm pretty sure rider will give up first at this rate

dire canopy
#

is the context tag: fish_has_roe what makes possible fishing the specific fish roe with the book of roe, or is that not connected?

calm nebula
#

Yes, it is for that

#

Not for fish ponds

dire canopy
#

thanks

shut edge
#

having a mild moment over here....this code works fine in my previous mod "Action": "EditImage", "Target": "Maps/springobjects", "FromFile": "assets/kibble.png", "ToArea": { "X": 160, "Y": 112, "Width": 16, "Height": 16 }, "When": { "LocationName": "{{ModId}}_DinoCave" }, "Update": "OnLocationChange" }

#

this does not "Action": "EditImage", "Target": "TileSheets/Craftables", "FromFile": "{{ModID}}/assets/dotmachine.png", "ToArea": { "X": 48, "Y": 384, "Width": 32, "Height": 32 }, "When": { "LocationName": "{{ModId}}_ghosthouse" }, "Update": "OnLocationChange" },

#

removing the ModID bit doesn't seem to help either

gentle rose
#

you do need to remove the modid bit from the fromfile path, but it might not be the only problem. What do you mean by not working?

tiny zealot
shut edge
#

it's supposed to change the hopper while inside the house, which it has before, but now it's just the default

gaunt orbit
shut edge
gentle rose
#

vibes-based mods are the best mods SCyes

shut edge
#

plus side my painting mask is workin

tiny zealot
gaunt orbit
#

I always put them inside the class that uses them

#

same with delegates

lucid iron
#

Yeah but they r like typedef to me

#

Therefore they go on namespace

proud wyvern
gaunt orbit
#

I avoid sharing names anyways because it tends to make things less readable

#

especially when static methods are a thing (though that doesn't apply to enums)

proud wyvern
#

idk, enum Mode and public Mode Mode makes perfect sense to me

#

or DisplayStyle

#

most such enums really

gaunt orbit
#

I usually add a qualifier to one or the other, like ProcessMode Mode

gentle rose
#

@normal trout I commented this in the mod ideas repo itself as well, but your idea actually doesn't require any c# coding if you want to attempt it yourself SDVpufferheart

proud wyvern
#

having to spell them out fully in C# really sucks

#

i wish it worked like in Swift

gaunt orbit
#

that is true, if you use them a lot outside the class, it is more convenient to have it in a namespace

#

you can using static but that's even worse than fully qualifying it tbh

proud wyvern
#

it really is

hybrid talon
# lucid iron What is your particular use case?

A lot of configs (mostly keybinds), in a mod which isn't compatible with gmcm
It is minorly annoying to have to call the extra class name but the increased readability and organization in the final config file is well worth it

gentle rose
gaunt orbit
#

it's always interesting reading about how and why people do things

hybrid talon
#
  1. It can't do arrays of keybinds though, which I'm using to add basic compatibility for other mods
gaunt orbit
#

it supports KeyBindList but only allows defining a single bind for it

hybrid talon
#

And 2) it doesn't seem to have support for controller mode, which makes it incompatible with the purpose of my mod unless I added special code for it (which I don't really want to do lol)

#

(The amount I want to figure out how to add adjacency to the gmcm menu items is 0)

hybrid talon
# gaunt orbit it supports KeyBindList but only allows defining a single bind for it

Yeah and I specifically need a list of keybinds where 1) the order matters and 2) you can add or subtract entries at will to adjust for mods which change the sizes of inventories/chests, so I can't just use keybindlist on its own (since keybindlist doesn't tell you anything about the order of the keybinds)
(I'm actually using an array of keys, not an array of keybinds, and converting them to keybinds later)

gaunt orbit
#

well, GMCM does support adding custom widgets

uncut viper
#

you can add multiple keybinds to a keybindlist

hybrid talon
#

But not ordered

uncut viper
#

you can put them in whatever order you want

hybrid talon
#

Yeah, that's the problem

#

I need to be able to access the index of which keybind from the list was the one that triggered the event

uncut viper
#

can you not just search thru the list until you find the matching button

hybrid talon
# gaunt orbit well, GMCM does support adding custom widgets

Also I'm sure I could figure out how to add an array of keys to it, but that would still require me to add extra support to make the menu navigable. I'm pretty sure it would actually be easier to make my own custom settings page, which I'm considering doing at some point, but that's a "when everything else is done and I have time on my hands thing and also my mod is released and other people are using it" thing

shut edge
#

there we go

hybrid talon
# uncut viper can you not just search thru the list until you find the matching button

I was under the impression that you cannot access the order of the keybinds in the list
I'm literally converting the keybinds to numbers based on their location in the list and then doing math on them to match them to the rows and columns in the player inventory/chests, so that you can go directly to an inventory slot by pressing the row and column keys for it sequentially

uncut viper
#

a keybindlist just has an array of KeyBinds

#

theres an order to the array

#

i might not be fully understanding the explanation which is probably on me im not very focused right now admittedly (trying to multitask and failing)

calm nebula
#

Threading!

#

Threading is fun

#

So is dim sum

gentle rose
#

I think the multithreading and prioritisation algorithms in my brain are broken tbh

calm nebula
#

Which means you have the adhd

patent lanceBOT
velvet narwhal
#

i just got home

uncut viper
#

perfect reminder, then

reef kiln
#

I love it when I finish a .json and run it through the checker and it has 0 errors. It rarely happens for me. I always miss a { of something.

velvet narwhal
#

i don't even know if someone wanted to deal with my spaghet

tropic walrus
#

I'm trying to edit the Wizardhouse so that passing out within the tower causes you to wake up there instead. Does this code look ok? I've checked multiple mods as a reference and I'm still not entirely sure if this is the way to do it. { "Action": "EditData", "Target": "Data/LocationContexts", "Entries": { "WizModWizardHouse": { "Name": "WizModWizardHouse", "PassOutLocations": [ { "Id": "Default", "Condition": "PLAYER_NPC_RELATIONSHIP Current Wizard Friendly Dating Engaged", "Location": "WizardHouse", "Position": { "X": 3, "Y": 4 } } ], "MaxPassOutCost": 0, "PassOutMail": [ { "Id": "Default", "Mail": "WizModwizardhousepassout", "MaxPassOutCost": -1, "SkipRandomSelection": false } ], }, }, },

velvet narwhal
lucid iron
#

The issue was dealing with "Marlon" vs "MarlonFey" right

velvet narwhal
#

basically i compensate the includes depending on if SVE is installed or not

#

if SVE is installed = i only affect the schedule

#

it's really the Appearances that i had a headache for due to Marlon and MarlonFay being used in events suslysella

calm nebula
#

Easy enough to just dynamic token thT shit

velvet narwhal
#

yeah it's dynamic token'd

calm nebula
#

Marlon if not sve else marlonfey

velvet narwhal
#

i just had to remove the dynamic token for Marlon appearance just so it'd grab both appearances

hybrid talon
# uncut viper i might not be fully understanding the explanation which is probably on me im no...

No you might be right, I looked a little into keybindlists and my impression was that they were unordered, but I might have given up too quickly before finding out how they were implemented under the hood. So I might be wrong about the fact that they're unordered. I'll probably stick with what I have though because I'd prefer a list of keys to a list of keybinds (restricting them to one key is preferable imo)

velvet narwhal
#

(though tbh at this point i think i'm also gonna go the BETAS-only route because i don't want to compensate the dialogue suslysella )

shut edge
#

anyone know off hand what the stuff like "l 20" means in cooking recipes? seems to be an unlock condition but i dunno what

latent mauve
#

Everything in the list with l <#> seems to coordinate with a Queen of Sauce recipe, or a recipe that can only be purchased.

shut edge
#

ahh that could be it

royal stump
#

SDVpufferlurk yeah, afaict only default, f, s, and skill names do anything in unlock field

shut edge
#

cool

reef kiln
#

how do I add a Contexttag without overriding what is already there? Do I just have to add the preexisting tags as well as the one I am adding?

#

For example

#

{
"Action": "EditData",
"Target": "Data/Objects",
"Fields": {
"386": {
"ContextTags": [
"color_iridium",
"ore_item",
"use_reverse_name_for_sorting"
** "temisthem_bettertruffles",**
],
}
},
},

#

the bold is what i want to add to iridium

brittle pasture
reef kiln
#

thanks so it would look like this

{
  "Action": "EditData",
  "Target": "Data/Objects",
  "TargetField": {
    "386": {
        "ContextTags": [
            "temisthem_bettertruffles",
            ],
        }
    },
},
brittle pasture
#

no
follow the format of the msg I linked

#

(ignore the When field it's not needed in your case)

tender bloom
#

I remember pathos was maybe going to make it better

reef kiln
#

so this

{
  "Action": "EditData",
  "Target": "Data/Objects",
  "TargetField": ["386", "ContextTags"],
  "Entries": {
        "temisthem_bettertruffles":"temisthem_bettertruffles", 
            }
},
brittle pasture
#

yep that looks good SDVpufferthumbsup

brittle pasture
#

but that still works

calm nebula
#

how are we doign this lovely fall day

brittle pasture
#

about to enter mountain tunnels again so if this message gets sent 10 min later that's why

tender bloom
#

I’ll try to get my snippets updated then

#

But if anyone else is inspired it’s a wiki so go wild if you know what you’re doing

brittle pagoda
#

is this OG marlon's void

velvet narwhal
#

basically, if MarlonFay exists = hijack that, if it doesn't, use Marlon

normal trout
brittle pagoda
gentle rose
velvet narwhal
gentle rose
#

(I believe they wanted to use a different marlon mod in conjunction with SVE avi)

velvet narwhal
#

for a 4th party to make the compat between the two would be convoluted suslysella

gentle rose
#

even as a personal edit?

velvet narwhal
#

personal is easy

brittle pagoda
#

it is 1000% for personal use, i dont wanna commit blasphemy against any mod authors lol

velvet narwhal
#

dump the nonSVE into SVE's dialogue keys, and probably throw in a marriageDialogue file

brittle pagoda
#

are there any tutorials i could watch since i don't really understand what keys are, im very beginner and only have done minor edits and fixes whenever i download mods

velvet narwhal
#

uhh

#

the added problem is that SVE is kind of everywhere, i can probably do a thorough tldr in #1277457201077813280

uncut viper
#

(i think a "thorough tldr" is called an explanation /lh)

velvet narwhal
#

okay a quick runthrough

brittle pagoda
#

if its not too much of a bother hehe

#

ofc i can also just go off on my own if i have a starting point

gentle rose
nova gale
#

@

ruby brook
#

how do you add multiple conditions in the json file?

nova gale
#

what do you mean?

#

like, an edit record with 2 when conditions?

gentle rose
#

do you mean on a specific content patcher patch?

ruby brook
#

I'm adding music to the game, so yeah with 2 whens I guess

gentle rose
#

can you send us what you currently have using the json validator please?

#

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

nova gale
#

here is one way: (a dynamic condition that aggigates the 2 into a single true/false value)

#
{
            "Name": "DragonHouse",
            "Value": "mytigio.dwarven_expansion_LargeCavern",
            "When": {
                "MoveDragonsToCavern": "true",
                "HasMod": "mytigio.dwarven_expansion"
            }
        }
ruby brook
#

sure, sorry I'm being vague

nova gale
#

but basically, this would work directly as well, you just seperate them with a comma

ruby brook
#

I hope I can properly put an example in here, I don't use discord much either 😛

#

"Refugee_Theme": {
"Id": "Refugee_Theme",
"Track": "Refugee_Theme",
"Condition": "SEASON Spring"

#

so that works, but I can't figure out how to add more conditions

nova gale
#

ah, so not when conditions then, those are GSQ I believe

#

let me confirm

tiny zealot
#

a Condition like that is a GSQ. you can add more by separating them with commas (within the string)

nova gale
ruby brook
#

really? hmm, I tried that, but it didn't seem to work

#

the comma, I mean

tiny zealot
#

e.g. "Condition": "SEASON Spring, DAY_OF_MONTH 12" to be satisfied only on spring 12

ruby brook
#

I tried: "Condition": "SEASON Summer, WEATHER Farm Rain"

#

but that doesn't seem to work

nova gale
#

does "WEATHER Farm Rain" work by itself? (just to make sure it's not a problem with the condition itself)

ruby brook
#

that's a good question, I can test that right now, cause it was raining on my current day

tight rivet
gentle rose
tiny zealot
dusk mulch
#

@blissful panther What is your timezone so I know rougly when meep (may be) released? (here is a cookie as comp for the ping 🍪 )

tiny zealot
#

Music
(Optional) A list of cue IDs to play before noon in this location unless it's raining, ...
this seems relevant (emphasis mine)

uncut viper
#

its plausible that it just wasnt picking that music to play

#

if its not raining, then it chooses the song based on how many non-rainy days there have been in the current month

nova gale
#

sometimes I boggle at the logic choices CA went with for things 😛

uncut viper
#

that one makes sense

#

dont want it to be random

#

itd be annoying to get the same morning song 3 days in a row

tiny zealot
#

but if dwarfmp is trying to get it to choose music when it's raining, then...

uncut viper
#

oh yeah. thats true

#

well

#

that depends

ruby brook
#

yeah rain seems to be a problem, that might've been it

uncut viper
#

it checks the weather in that location context

#

but dwarf is checking specifically the farm for the GSQ

#

if this was adding music to the desert, for instance, it'd be completely fine

gentle rose
#

do any of you happen to know how hardcoded the emote menu is? specifically, how difficult it would be to put something in it that triggers an animation/dialogue box/trigger action instead of showing an emoji in a speech bubble

nova gale
#

yeah, so technically if it was raining on the farm, but not his custom location, it might pick the song

tiny zealot
#

the way i read the wiki entry, the Music list is not consulted at all if it is raining in the location context

uncut viper
#

thats true

#

but it might not be raining in their location context

#

regardless of whether or not its raining on the farm

#

in other words, more info needed

teal bridge
uncut viper
#

also by opostfix i mean prefix if you wanna stop it entirely

#

check EmoteMenu

ruby brook
#

it's a little strange though cause there's also "MusicIgnoredInRain false"

#

which I assumed would make the music play on any weather, rather than just in rain

uncut viper
#

thats for a different music selection

#

the music list you're looking in is JUST for choosing a song to play in the morning

gentle rose
uncut viper
#

and MusicIgnoredInRain means it plays nothing in rain

uncut viper
gentle rose
#

all harmony has been banned from the ezpz label unfortunately SBVLmaoDog

uncut viper
#

it can be done with content patcher with BETAS-

#

i think it can be done without harmony

ruby brook
#

well no music in rain, ah well, but I thought I hadn't written it right, cause I'm also having problems with "SEASON Summer, MusicIsTownTheme true"

noble falcon
uncut viper
#

since it just types in chat for you, just hook into the OnEnterPressed TextBoxEvent

#

in the chatbox