#making-mods-general

1 messages · Page 377 of 1

royal stump
#

(never sure when the bot will/won't accept more text after commands SDVkrobusgiggle)

fossil osprey
#

The author has given permission to use their assets and modify the code, so you're safe for that part

Which means yeah, you just need to know how modding works

royal stump
#

yeah, I'm not 100% sure what nexus's policy on cross-game* sprite mods is these days, but the original editor is fine with it

#

and that one's been around long enough that it's probably been seen

fossil osprey
#

Their permissions are open on the mod page, so no problems ^^

tender badger
#

hi all! im very new into modding, and was wondering if it is possible to use buildings as tilesheets into our own mod while listing the mod used as a dependency.
for example, could i use buildings in https://www.nexusmods.com/stardewvalley/mods/14524 into a custom map, if i do not include any images from this file in my mod, and list this mod as a dependency?

wondering what is the general practice on this - is this allowed or should i always check with the owner?

lucid iron
#

Elle's town buildings changes the tilesheets

#

So you if u are repurposing any town buildings as is you will have the changes too

tender badger
#

im actually not repurposing town buildings - more like creating a new one! lets say id like to use Elle's doghouse in a custom farm map, is it allowed for me to reference her image in my mod?

lucid iron
#

You can't because she's not loading the images

unreal spoke
dusky sail
#

If you're wanting to repurpose elle's sprites as part of a tilesheet for a new area, you will have to ask for permission. But in general, no one will ever get mad at you for asking permission even when you don't need to, so it's ok to err on the side of caution in the future

tender badger
#

sounds good, thanks all! does anyone know if shes on this discord by chance?

round dock
#

Yes, she is

lucid iron
#

if the image exists under Maps then yep it works just via dependency as if you got a tilesheet mod

#

without that you will have to do it by arbitrary tilesheet access (another mod)

tender badger
#

@round dock sorry im quite new here; do you have her @? thanks!!

#

@lucid iron o interesting, i wasnt aware of these caveats - i saw the images from her mod folder and was able to use as embedding in Tiled, so i thought they were loaded in as replacements to original map

lucid iron
#

how attached are you to elle's building specifically monS

#

cus there's tilesheets mods with buildings from other ppl that are actually designed for usage in maps

tender badger
#

haha, not particularly, but they do look amazing! i dont know if ill have the funds for completely new set of new bulidings tho 🙂

lucid iron
#

check out lumisteria outdoors perhaps

tender badger
#

yup i saw some tilesheet mods (hxw for one! who have said as long as they are listed as dependency could be used in maps) but couldnt find any buildings in them - mostly decors

lucid iron
#

i like the funny semicircle building

#

but yea tilesheet mods r just easier to use for this purpose

#

they will load their sheets to Maps and then you can use em normally

round dock
lucid iron
#

as if they are vanilla sheet

lucid iron
tender badger
#

hm i havent tried loading them in yet, so maybe using a building mod wont work as a referenced tilesheet..?

lucid iron
#

i recommend starting with a copy of a vanilla map monS

#

there r lots of differences between what tiled lets you do and what game will actually load

#

!tilesheetclimbing

ocean sailBOT
#

When creating or editing maps in Tiled, one common error is tilesheet climbing, marked by red text containing "invalid tilesheet path '../../..'. This is caused by SMAPI not being able to find the tilesheets needed by the map file. To prevent this error, make sure that you have a copy of all necessary tilesheets in the folder containing your WIP tmx file. Copies of vanilla tilesheets can later be deleted, but must be present while working on your map.

If you get this error with a completed map, an easy way to fix it is to open your tmx file in VS Code or a similar text editor, find all of the places with <image source=, and remove the filepaths to so that only the tilesheet names remain. For example, if the code says <image source="Content (unpacked)/Maps/townInterior_2" width="512" height="64"/>, change it to just <image source="townInterior_2" width="512" height="64"/>.

lucid iron
#

try using just vanilla sheets first and do some simple edits to make sure you get whats going on kyuuchan_run

tender badger
#

will do! thank you @lucid iron ! are u making a mod too?

lucid iron
#

i have made many mods yes

tender badger
#

niice! thanks for all the inputs :>

fathom rapids
#

ngl making maps is so fiddly. Shoutout to putting z at the start of tilesheet names so theyll sort properly alphabetically ☠️

brave fable
#

to be fair, it's not required anymore SDVpufferthumbsup still, a whole lot of work goes into sculpting a world. it's not the sort of medium where you can use broad strokes anywhere

#

unrelated, surprised the game looks out for some item named Salt in the makePlural method to change into pieces of Salt

dusky sail
#

I think there's a sprite for salt in spring objects? SDVpufferthink probably one of those holdovers CA never deleted

brave fable
#

(in the same switch that tries to prevent creatures like Haies as plurals)

hard fern
#

Pieces of SAlt

#

ill find the salt

#

🤔 i dont reckon this is salt, is it?

brave fable
#

it's possible, i thought it was an existing mineral at first, but it's not shown on the wiki

hollow belfry
#

slay

#

i ended up creating the mod from scratch instead of using the mod that i found

#

x)

hard fern
#

i cant find anything vaguely salt shaped besides that lump

royal stump
#

I don't see any C# stuff that uses the sprite either, so probably that, yeah
(I thought it did for a sec, but the fish pond's gold bucket has the same coordinates SDVpuffersquint)

spice inlet
#

Huh, turns out fish pond produce depends on tile position.
Kind of explains why debug dayupdate sometimes doesn't produce any produce, no matter how often you try.

Random r = Utility.CreateDaySaveRandom(base.tileX.Value * 1000, base.tileY.Value * 2000); ```
#

that solves the mystery of why fish ponds dont work in pif rooms. they do

timid helm
#

When making a map in tiled, if one of the vanilla tile sheets that you used got renamed, would it not function properly for people because they don’t have that file?

fathom rapids
timid helm
fathom rapids
# timid helm Do I need to change it in tiled to? Also do all the vanilla tile sheets need to ...

ok so what you should do is have a separate folder (not in your mod's folder with content.json and stuff) that has (1) the map file you're working on, (2) all the tilesheets you need, copypasted from vanilla or from tilesheet mods you're making into dependencies. DO NOT rename the files in this folder (except your own, that's fine). However, when you open your file in tiled, you're free to rename the tilesheets inside it as you see fit

#

when you prepare your mod for release / use, put only the map file into your mod's folder. Do not put the tilesheets there.

timid helm
fathom rapids
#

If this folder's name shows up anywhere in your files, you've fucked up

timid helm
fathom rapids
#

To be clear, I'm explaining how I find it convenient to do things, not The One True Way. You could just put the tilesheets in your mod folder and then delete them before zipping it up, it's just kind of. worse. imho.

foggy marsh
#

does anyone have an up to date guide for making events? i looked it up but i think most of them are outdated

hard fern
stark spindle
foggy marsh
#

learning events is pretty much the last hurdle i have to completing this mod

obtuse wigeon
#

How do I acess map properties like warps after I've clicked on a tile layer? the only way I've found so far is closing tiled then re opening it

#

Nevermind, ignore me, I found it right after sending the message

delicate smelt
#

i wanna make a function,when a new year begins,reset all legendary fish to be able to catch,how to write the code?

novel obsidian
hard fern
lucid iron
#

i think easiest way might be editing CatchLimit for the legendary fish and set it to the Year token

#

(can do this in C# too ofc)

lucid iron
#

the thing u need to edit is

Data/GameLocation > [location] > Fish > [the entry with IsBossFish=true and CatchLimit!=-1]
#

add Game1.year to it and it should work as desired

golden basin
#

how do i fix this bug?

#

does the id need to match the name of the texture??

#

oop i figured it out

#

also whos mushymato? are they in the server?

unreal spoke
#

It’s Chu.

golden basin
#

@lucid iron GRABS YOU

#

HAve you ever considered adding pet adoption options to your livestock menu?

lucid iron
#

it wouldn't go in the livestock menu but i did add a thing

golden basin
#

: O

lucid iron
#

i pinged u but let me find the message

golden basin
#

is it seperate from marnie?

lucid iron
#

this is in the 1.4.0 version on nexus

#

basically u make a normal shop, but use this in ItemId instead of PET_ADOPTION

#

then u can filter for ur pet and stuff, can also change currency

#

its not a lb shop just normal item (pet license) shop

golden basin
#

so they show in just a normal shop?

lucid iron
#

yep

delicate smelt
#

private void resetbossfish(object?sender,DayStartedEventArgs e){
if(Game1.dayOfMonth==1&&Game1.season==Season.Spring){

        }
    }
lucid iron
#

the lb shop is very specialized for farm animals

golden basin
#

oh cool, is there a way to make a combo shop like marnies ?

lucid iron
#

yea u can use the Bazaar data stuff

#

theres a field to put pet shop id

delicate smelt
golden basin
#

ill hsve to look further into it

lucid iron
#

lmk if u need example SDVpufferthumbsup

golden basin
#

i mean a example would be banger chu

lucid iron
#

i have a example for combo item + farm animal shop in buy all farm animals (island trader)

#

pet is kinda like that just different field to set

#
{
  "Action": "EditData",
  "Target": "mushymato.LivestockBazaar/Shops",
  "Entries": {
    "{{ModId}}_ClownCustomShop": {
      "PetShopId": "{{ModId}}_ClownCustomPetShop",
    }
  }
},
lucid iron
# lucid iron

and then u make a normal Data/Shop that is a pet shop following the petshop.json example

lucid iron
lucid iron
#

just increase the catch limit by editing the data

#

i personally think if you have choice to make something happen by doing a data edit you should

delicate smelt
lucid iron
#

remember to invalidate Data/Locations whenever the year changes

golden basin
lucid iron
#

which would be very infrequent really kyuuchan_run

lucid iron
#

it will show adopt pet if you have generally unlocked pets at marnies

golden basin
#

where do i put the pet shop id???

#

like in the data

#

do i put it in place of petadoption?

lucid iron
#

if u wanna give me like 15mins ill give u a full combined example PecoWant

golden basin
#

I would love that honestly because im not really getting it completely im very sorry

delicate smelt
lucid iron
#

you will have to queue up behind clown sorry kyuuchan_run

delicate smelt
#

thats ok

lucid iron
#

i dont mind that much but are u sure u want that

golden basin
#

question

#

can i sell livestock and pets from the same shop? i just wanna make sure i clarified thats what i was curious about

#

like the way marnies is

lucid iron
#

yea

golden basin
#

okay cool i was confusing myself

delicate smelt
lucid iron
#

u can have item shop + pet shop + animal shop

golden basin
#

ooooo

lucid iron
#

but for anything more you will need mmap's question dialogue to basically build it yourself blobcatgooglyblep

golden basin
#

YESSSSSSSS

#

Chu i did it, I understood your examples finally

delicate smelt
lucid iron
#

the reason why u shouldnt do that is cus i think it affects perfection

#

to "uncatch" a fish

obtuse wigeon
#

Is there a way to include a mod list into a save? I have so many saves but I dont remember which mods are needed for that save, I ask this method instead of just including a txt file with the modlist because I switch between steamdeck and pc, and my pc gets wiped often so theres no guarentee that the txt would survive

delicate smelt
golden basin
#

oop

fossil osprey
#

You'd just need to save the link somewhere, even on a solo discord server

obtuse wigeon
golden basin
obtuse wigeon
#

Actually an alternative for this is using that mod and placing the modlist inside that actual savegame itself, as long as steam cloud uploads all files in the save and not just some

obtuse wigeon
# iron ridge

That is much closer to what I'm looking for, I'm gunna have a dig through the source to see if it saves this to a file acessed outside the game too (or a way to expand the "... and 302 more." section)

lucid iron
#

i didn't test this kyuuchan_run

#

besides doin quick patch export

#

this is very much a mod you can just do in content patcher however doing it in C# makes it compatible with modded legendary fish

delicate smelt
#

so the right logic is,when a new year begins,if player's boss fish catched count=upper limit,upper limit+1?

lucid iron
#

that's not how it works

#
  1. do edit on Data/Location Fish
  • find IsBossFish + CatchLimit>0
  • set CatchLimit to original value + current year - 1
  • the AssetRequested handler does this
  1. whenever the year changes, Invalidate Data/Locations
  • the DayEnding + DayStarted handlers do this part
#

u can take this and tweak it as long as your mod is also open source (per MPL-2.0 terms)

fossil osprey
# iron ridge

Oh THAT is the mod that does this, I remember having this on one of my modlist but couldn't pinpoint the mod responsible for this

spice agate
#

Hello everyone. Making my first mod here. I am currently translating stardew valley to my native language Mongolian. But when I put some cryllic texts SDV is not recognizing ү, ө "letters". How do I change the formatting to UTF-8?

iron ridge
gentle rose
#

if it's just cyrillic, stardew already has a Russian font I think? if all the letters are the same

spice agate
#

Yes but the thing is Mongolian cryllic has 2 more letters than Russian cryllic 😅

lucid iron
#

Did you make a custom language

gentle rose
#

ah, I see

spice agate
#

Yes I am making a custom language mod

lucid iron
#

Like get Mongolian to appear on title screen

#

After you do that u can set fonts Bolb

gentle rose
#

good luck btw!

spice agate
#

Alright I am gonna try to change the fonts. Thanks

delicate smelt
lucid iron
#

If it is just 2 more letters perhaps u can edit the russian font easily, im not sure how it work

delicate smelt
#

private void resetbossfish(object?sender,AssetRequestedEventArgs e){
if(Game1.dayOfMonth==1&&Game1.season==Season.Spring){
if(e.Name.IsEquivalentTo("Data/Locations")==true){

            }
        }
    }
#

this is my code part,its not finished

#

i dont know the code of editing the catch limit,and get player's boss fish catched count

lucid iron
#

Do u care about that bolbthinking

lucid iron
#

But it does include the previous counts so you get +1 per year rather than +1 only if you have caught it this year

delicate smelt
#

this is fake code,the logic should be like this:
if player.a kind of boss fish catchcount==catch limit{
catch limit++;
}

lucid iron
#

Then the logic becomes more complicated since you will have to track this per player NotteThink

#

I think it might work still? If u block AssetRequested behind Context.IsWorldReady then u should be able to use Game1.player.fishCaught in the data edit

deep cypress
#

Why does tile 183 on the beach tileset make a weird glitch animation (brown lines) when added to maps, despite having no animation on it in the tileset?

#

(Happens to any map I add it to...)

brittle pasture
#

is it one of the water tiles

deep cypress
#

is a rock tile, the top of the Lonely Rock.

gentle rose
#

is this in tiled or in the game?

#

if it's in the game there's a chance there's some hard coding shenanigans

brittle pasture
#

I see 183 in GameLocation.isTileUpperWaterBorder

#

though that doesnt seem used in draw logic

mighty quest
#

does the game have an italic font?

stark spindle
#

Is there a way to repeat a conversation topic or do I need to clear it out of the previousActiveDialogueEvents with c# first for it to work again?

#

or am i doing something dumb and that should work?

delicate smelt
gaunt orbit
mighty quest
#

figured

gaunt orbit
#

If you really, really want italic text there are options. They're cursed but doable

#

You could use bmfont to get the raw layout data and render your own polygons with a tilt

You could also draw text the normal way but use a custom spritebatch with a skew matrix applied

mighty quest
#

nah not worth

#

do you know why mouse coordinates are different in render loop and button pressed event?

gaunt orbit
#

Ui has a separate viewport

#

With its own scale

#

Though if both are either outside or inside the ui handling then they should be the same

mighty quest
#

how do buttons detect clicks then?

gaunt orbit
#

Ui buttons or gamepad buttons?

mighty quest
#

ui buttons

#

I'm rendering a custom button, and trying to implement the click

gaunt orbit
#

IClickableMenu.recieveLeftClick or something like that, with ui scaling applied

mighty quest
#

right, but that is called in the update loop right

#

so the coordinates are different

gaunt orbit
#

It's called in the ui handling part yes

#

Are you using smapi events?

mighty quest
#

yes

gaunt orbit
#

Those are all called outside ui handling I think, except the renderstep for ui

#

What are you adding a button to?

mighty quest
#

dismiss summoned monsters

gaunt orbit
#

No I mean what menu? Or just on the hud?

mighty quest
#

Hud
I made a custom IClickableMenu just to inherit the gamepad logic for the buttons

#

but all the logic is custom right now

gaunt orbit
#

Hud is easy, just make a custom menu and add a ClickableComponent to it

mighty quest
#

ok that's what I'm doing
but i'm not setting this as the active menu

gaunt orbit
#

You'll have to do key inputs manually IIRC since the hud only accepts mouse

gaunt orbit
#

Just add it to that and the game will handle most things

mighty quest
#

I'm detecting inputs manually with smapi events
just the mouse clicks are fudging up

gaunt orbit
#

Yeah don't do that, let the game handle mode input for hud stuff

#

You'll still have to handle key presses manually though

#

It's Game1.onScreenMenus

mighty quest
#

hmm

gaunt orbit
#

That will handle drawing and mouse for you as long as you override the usual methods

mortal hatch
#

im atm trying to make a custom farm, any tips from experience?

gaunt orbit
mortal hatch
#

especially about abalancing

#

both

#

atm its 4 corners but with cliffs isntead of walls

#

making it look nicer

gaunt orbit
#

[[Modding:Farm_data]]

gaunt orbit
#

That has a general overview of how to make a custom farm type

mortal hatch
#

so when i save in Tiled, does it also save the reference tilesets pngs in the tmx file?

#

nvm it does

uncut viper
#

it doesnt save the pngs themselves. it saves the relative path to the pngs to know how to find them

mighty quest
mighty quest
#

nvm got it

keen seal
#

How do you set up an Action Message for something on the Back layer? I’ve got some letters scattered on the floor that I’d like to have a string attached to but putting the TileData on the Back or Buildings layer doesn’t work

urban patrol
#

i think only touch action works on the back layer

#

why doesn’t buildings work?

quartz mica
#

hello everyone! I'm wanting to make a custom "texture pack" mod to change one of the hairstyles to be a custom one. how do I do this? I have zero experience in making sdv mods, so please be patient if I'm slow to understand.

urban patrol
#

are you trying to change the farmer hairstyle or an NPC?

quartz mica
#

farmer hairstyle

urban patrol
#

i believe you can do that with fashion sense, but unfortunately i personally have no experience with it. plenty of others do though!

quartz mica
#

I want it to work clientside, not adding an entirely new thing but just a reskin

#

if that makes sense?

#

I've done something similar with terraria texture packs

#

been a while though, so I'm rusty

keen seal
# urban patrol why doesn’t buildings work?

Figured it out! It wasn’t working because it needs there to be a tile on the Buildings layer for it to connect to 😅 which I wasn’t doing because I want those tiles to be passable

finite willow
keen seal
#

but I remembered that the Passable tile property exists and just got it working

urban patrol
finite willow
#

saw it before while scrapping the game map

quartz mica
#

my main hurdle is trying to get the hair texture itself that I want to replace (hair style 60, the low ponytail one)

dire kestrel
#

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

dire kestrel
#

should be in hairstyles.png

quartz mica
#

thank you! I was just about to ask about an asset unpacker lol

#

okay I unpacked all the stuff, now to find the hairstyle I wanna change lol

#

ah found it

quartz mica
#

now that I made my texture, how do I import it into a mod?

#

again, to replace the texture

round timber
#

you’ll want to look into Content Patcher

#

!startmodding

ocean sailBOT
#

Making mods can be broadly divided into two categories:

Usually it’s easier to start with making content packs, since you don't need to learn programming.

cold marsh
#

Is the highlighted dialogue key functionally useless? If you give a pendant to a NPC, you're engaged. There's no level lower than that.

brittle ledge
#

it's a default that covers if you don't have the more specific ones above it, I believe

quartz mica
cold marsh
#

Makes sense.

hard fern
#

it's for when you try and give your spouse another pendant i think

#

Probably not something many people see

#

Since well, you're already married

#

Oh wait

#

Im dumb lol i managed to miss the two keys above it

#

It's all the same thing anyways...

calm nebula
#

(Is it something that fires if you have a roommate?

quartz mica
#

I have. no idea what I'm doing!

#

does this look correct?

#

wasn't sure what to do for the update key so I just did z

uncut viper
#

dont do z, because it wont work

quartz mica
#

what do I do then

uncut viper
#

that page will tell you how to make your manifest, including what to do about the UpdateKeys section in the section called "Update checks"

quartz mica
#

OH

#

I thought it was like. you press something for it to update. I may be stupid

#

I put the hairstyles png into this

#

is there anything else I need to do?

#

or is it ready to test?

round timber
#

do you have the content.json as well?

quartz mica
#

yup

round timber
#

should be good to go then

quartz mica
#

wait

#

no it's the uh

#

manifest

round timber
#

you need a content.json too, thats what tells the game to make your changes

quartz mica
#

hoo boy

#

here I go

brittle ledge
#

(I probably need to review that and make sure nothing's changed since 1.6 SDVpufferthinkblob )

quartz mica
#

do I put the content.json into the base folder? or does it need to be in a different one?

round timber
#

it needs to be in the same area as the manifest

quartz mica
#

got it

#

just gotta figure out how to get it to replace hairstyle 60 specifically >.>

round timber
#

the link tia sent should answer that

calm nebula
#

Q: why replace?

#

It's incredibly easy to make new ones

quartz mica
#

I want it to work clientside

#

so I can use it in multiplayer without having to have others install it

#

now I just... need to figure out the dimensions.

pine elbow
#

Hey guys, is there anything that makes making custom character sprites easier\

round timber
#

format should be "2.7.0" and the target needs to be whatever the filepath of the original hair asset is in the game's content folder

quartz mica
#

oh

hard fern
#

Like are you looking for a template?

round timber
#

Characters/Farmer/hairstyles2

brittle ledge
quartz mica
#

like this?

round timber
#

nono

#

exactly what i wrote

#

the target is always going to be inside content anyway, so remove that and the stardew thing

quartz mica
round timber
#

yes

quartz mica
#

cool cool

#

test time?

round timber
#

yerp

pine elbow
#

yeah a template if not i can do the work

latent mauve
#

I think most of us just use the vanilla character sprites as a starting point and draw over or next to them.

brittle ledge
quartz mica
#

it's uh. not working

brittle ledge
#

!log

ocean sailBOT
#

Important note: Your computer username may appear in the log. If your username is your full name, please be aware of this before uploading it.

Please share your SMAPI log file. To do so:

  1. Open this page: smapi.io/log.
  2. Follow the instructions at the top of the page to upload the log file. (Don't copy & paste from the console window!)
  3. After uploading, it will show a green box with a URL to share. Post that URL here.

Please do it even if you don't see any errors. This has useful info like what mods and versions you have, what the mods are doing, etc. If the issue didn’t occur in your last session, please load the game to the point where the issue occurs, then upload the log.

round timber
quartz mica
round timber
#

show the inside of your mod folder?

quartz mica
#

which part

brittle ledge
round timber
#

the place you have your png

brittle ledge
#

shouldn't it be assets**/**hairstyles

quartz mica
round timber
brittle ledge
#

no, I'm just getting my slashes backwards, ignore me

round timber
#

so youll need to make a folder named assets and put the png in there

#

the folder should be on the same "level" as the jsons

#

like they appear next to each other

quartz mica
#

okie

#

sorry for being so confused and asking so many questions, I appreciate everyone's patience with me haha

round timber
#

no worries! we all have to start somewhere. no one is born a stardew modding expert SDVpuffersquee

quartz mica
#

ughhh it's still not loading

#

there's no error in the log

#

not actually super mad about it, just think the gif is funny

#

mildly peeved I suppose

round timber
quartz mica
#

gah barnacles

round timber
#

hm i think you are making a patch that is way way bigger than it needs to be

#

should only be the width and height of the hair you are patching

quartz mica
#

it appears to be that way yeah

#

I probably messed it up

#

well not probably, I definitely messed it up lol

#

it's hard to get the specific dimensions right when I don't know what they are

urban patrol
#

what art program do you use? you can usually view the dimensions of files that way

#

for example photoshop (which i use) has a ruler that can display pixel width and height at the top/side

wanton pebble
#

I... have had an epiphany after spending way too long looking at roommate code

#

Past me is an idiot

#

Game state queries can determine roommating an NPC, and we can use them as event preconditions

round timber
#

rectangular selection tools often have the width and height displayed also

latent mauve
#

each hairstyle in hairstyles2 is contained in a 3216px wide and 128px tall block, if that helps.

quartz mica
#

ahh

latent mauve
#

That block contains all the directions of the hairstyle. 🙂

patent lanceBOT
craggy goblet
#

YAYY I MADE IT

#

lmao

quartz mica
#

might try one more time before I take a break, getting tired and my back pain is flaring up

#

yep it's still not working

#

this looks wrong and I know it's wrong but I don't know what I'm supposed to put here

#

wait I forgot to replace the y

#

will probably still be wrong thoughh

urban patrol
#

the width and height still look very large to me. are those the width and height of the entire image? that'll replace every hairstyle

urban patrol
quartz mica
#

oh

#

thought I had to pick a specific area from the entire sheet

urban patrol
#

yes, if you're just replacing one hairstyle

#

x/y/width/height are basically telling CP "start at these coordinates for the top left corner, and then look at a rectangle this wide and this tall"

quartz mica
#

still not working

#

is this even worth it lol

round timber
#

what are the x/y/width/height now?

quartz mica
#

if someone could just. tell me where to put what numbers

#

"FromArea": { "X": 32, "Y": 128, "Width": 32, "Height": 128 },
"ToArea": { "X": 32, "Y": 128, "Width": 32, "Height": 128 },

urban patrol
#

can you circle on hairstyles2 which one you're trying to replace?

latent mauve
#

How large is your source hairstyle image that you created?

quartz mica
latent mauve
#

Your X and Y are the coordinates where your hairstyle styles start, so those are likely wrong.

#

okay, your Y should be 0 then.

quartz mica
#

which one

latent mauve
#

the X and Y in ToArea is the top-left pixel coordinate of the rectangle you are attempting to replace.

#

and in FromArea, it's the top-left pixel coordinate of the rectangle you are attempting to paste into the image from your source file.

raw oxide
# quartz mica which one

if you have some problem seeing it i suggest using tiled you make a png of your then in tiled you convert it in tile then you can have the index tile

#

hi when making a content patcher furniture is there a way to make the tv interactive ?

quartz mica
#

I need a break

brittle pasture
#

TVs are hardcoded currently unfortunately
that will change in 1.6.16 though

#

for now there's furniture framework

latent mauve
#

also, I made a slight error earlier, individual hairstyles in hairstyles 2 are 16 wide, not 32.

quartz mica
#

really tired and back pain is super bad rn

round timber
#

then take a break! the mod isnt going anywhere and ppl here will be happy to help u out when youre ready again

quartz mica
#

thank you

latent mauve
#

Yep, take a break for now

quartz mica
wanton pebble
#

Yeah, you're not on a time crunch or something. Let it go and later you'll suddenly have a eureka moment and be able to do things

#

Real fast - for GSQ, IS_FESTIVAL_DAY Target Town would be the easiest way to catch ONLY vanilla festival events, correct?

quartz mica
#

I love being able to add my own custom things into games, but sometimes the process of doing so feels like a unique form of torture due to my disabilities LOL

latent mauve
#

dura, ToArea will be X: 48, Y:0 for when you come back to it, I just checked it for you. ❤️

quartz mica
#

been there before with starbound modding >.>

#

ooooo

#

thank you!

latent mauve
#

can't give you the other one without knowing how big your custom hairstyle image is, but if it's just that one hairstyle as a separate image, then it's probably x: 0, y:0

quartz mica
#

I know I'll feel better once I get some rest and give my brain some cooldown time

latent mauve
#

yep, rest well!

quartz mica
#

I can maybe send the png later when I wake up? if that would help

brittle pasture
wanton pebble
#

Hmmmmm

#

even with the target being Town?

brittle pasture
#

that'd limit to Town festivals yes

#

there are mods that add custom Town festivals too though

#

(I think?)

finite ginkgo
#

(IS_FESTIVAL_DAY checks a location context, not a specific location anyways)

wanton pebble
#

realistically it shouldn't catch passive festivals which is the main goal - I'll take the L on vanilla festivals in town otherwise

#

It shouldn't realistically alter this weird chicanery I'm doing by overhauling the preconditions of Date Night Redux out of nowhere

brittle pasture
#

ah yeah
I might dare say most locations use Default context so you'd catch basically all modded active festivals (re: Tedi)

wanton pebble
#

grumbles

#

I can go back to DayEvent but that feels... reductive

brittle pasture
#

if you really need to only consider vanilla festivals you can hardcode dates

wanton pebble
#

Nah, it's actually simpler if I have to do that I guess

#

!IS_EVENT

brittle pasture
#

IS_EVENT checks that you're actively participating in it

wanton pebble
#

points at !

#

but you're right

#

grumbles more

calm nebula
#

Why do valuable festivals matter

wanton pebble
#

I assume valuable is an autocorrect from vanilla

calm nebula
#

Yes

wanton pebble
#

So to answer that: If it's a festival anywhere, the block on festival dates goes up

#

In the current version of the mod, it just blocks RSV festivals and Pelican Town Potluck other than vanilla

#

So it's technically blocking more than just the vanilla festival days off, which means less date day possibilities, even if the areas are available

#

I'm trying not to cause too much regression on available days as I build this GSQ so I can catch a lot with this recode

#

And this is the simpler stuff that I can do until I finally feel tired enough to recharge with sleep for the weekend

#

tomorrow and sunday is fixing up fork three (written but I need to do all the positioning/event testing), adding extra switch events to the beginning of the Island date (so the drink choices actually matter) and then testing everything

#

All goes well, update releases Sunday or Monday

#

At the least I need to release an update soon - SpouseMusic is broken for Ridgeside and Adventurer's Guild Expanded, someone reported Krobus asked for a dance date which caused this recode chicanery, there's an issue with the gendering dialogue in the Saloon date, etc.

#

(Meant to say that early, but unfortunately I have a bad dryer right now and had to talk with the appliance place which is replacing the dryer, but I had to arrange a few things)

twilit quest
#

sighs Scope creep scope creep scope creep...

#

The tile property "Water: T" is supposed to make the water overlay appear, regardless of whether the tile is indoors, outdoors, mines, etc (as long as it's on the Back layer). Anyone know why the overlay might not be showing up when the above conditions are fulfilled? (This is supposed to apply when the property of all such tiles is changed in the tilesheet, not when using TileData to define a specific area.)

wanton pebble
#

Yeah, sorry, I'm answering my questions very quickly by reading. You can tell by the amount of messages I've deleted after figuring it out XD

lucid iron
twilit quest
uncut viper
#

thats bc Sewer is hardcoded for it

#

along with the submarine

twilit quest
#

Nope, still not showing up, darn it

#

Map property IndoorWater is T, index property Water: T, back layer

#

Time to go check and see if anyone's done it on Nexus

wanton pebble
#

Button, you're here!

brave fable
#

is the idea here that you're changing the map tilesets only?

wanton pebble
#

I'm doing some simple coding right now so I don't overtax my brain and I'm checking out BETAS code for the spouse displeased compat for DNR

#

Would the following work or is my syntax using your stuff wrong:

//Saloon Date Consequence
                "{{ModId}}_SaloonDisappointed": {
                    "Id": "{{ModId}}_SaloonDisappointed",
                    "Trigger": "DayEnding",                
                    "Condition": "PLAYER_HAS_MAIL Current saloonDateAgree, !PLAYER_HAS_SEEN_EVENT Current 1116012",
                    "HostOnly": false, 
                    "Action": "Spiderbuttons.BETAS_WritePlayerModData DNRSaloon {{Date}}",
                },
                
                "{{ModId}}_SaloonDialogue": {
                    "Id": "{{ModId}}_SaloonDialogue",
                    "Trigger": "DayStarted",                
                    "Condition": "Spiderbuttons.BETAS_PLAYER_MOD_DATA Current DNRSaloon",
                    "HostOnly": false, 
                    "Action": "Spiderbuttons.BETAS_SetNewDialogue [Spiderbuttons.BETAS_PlayerModData DNRSaloon] \"{{i18n:SaloonDispleased}}\"",
                },
#

.... I just read a couple things

#

I know my syntax is wrong in a few areas, I see at least some issues

#

Spiderbuttons.BETAS_ needs to prefix on the actions, will edit above

uncut viper
#

did you still need a response after fixing that or was that the issue

#

or is this theorycrafting

wanton pebble
#

Theorycrafting

#

I have to triple check because I'd be duplicating this a lot

#

.... and I gotta write a removal patch too, because rrrrgh I'm just being a dunce tonight

uncut viper
#

what would {{Date}} resolve to?

wanton pebble
#

Date's the dynamic token for the date chosen by Date Night Redux

#

so if Abigail was the date, it'd resolve to Abigail

uncut viper
#

then yeah that all looks like it should at least do something. whether its the something you want is up to you though. it'll set Abigail's (for example) name in the moddata in the top and then give Abigail dialogue the next morning

wanton pebble
#

Perfect, that's exactly what I need

uncut viper
#

however do you plan on having NON displeased saloon dialogue?

wanton pebble
#

Nah, that's taken care of by end of date stuff

#

and this is configurable

calm nebula
#

Long time no see, bluebs!

uncut viper
#

then that seems fine

wanton pebble
#

Thank you! I'll cross reference, add the removal patch, and then mentally theorycraft how to handle the edge case of Saloon twice in a row

uncut viper
#

assuming nothing else writes to that same mod data key between the two trigger actions

wanton pebble
#

Nah. DNRSaloon shouldn't get hit by anything else since it should be a new key entirely

uncut viper
#

im also not 100% sure of the timing of when daily dialogue is loaded, so you may need to change DayStarted to MorningStarted

#

but you also may not. dunno

wanton pebble
#

Is MorningStarted from BETAS?

uncut viper
#

it is

wanton pebble
#

Then I'll use it for these!

uncut viper
#

its just slightly later than DayStarted

wanton pebble
#

Because the dialogue stuff needs BETAS anyway. The friendship loss is a separate trigger/patch

restive slate
#

Why can't I talk in a vc

brave fable
valid folio
#

Hi, quick question: how can I make my machines compatible with Automate?

brittle pasture
#

nothing

#

unless you're rolling bespoke C# code it should just work™

brave fable
lucid iron
#

There's some minor concerns i guess

valid folio
lucid iron
#

I remember grapes of ferngill had some 5 grape rules lower than 3 grape rules

calm nebula
#

People speak in vc here?

lucid iron
#

And so automate never pick em

brittle pasture
#

an alarming amount

calm nebula
#

I thought the only vc channel muted you so you could play music via YouTube

wanton pebble
#

surprisingly, the VCs do exist and you can speak in them, except Stardrop Saloon

brittle pasture
calm nebula
#

There are other channels?

wanton pebble
#

Yep. You'd be at home in leah's-cabin

#

(Though that likely has voice)

lucid iron
#

It might have been like

#

Dehydrate generic dry 5 fruit was higher than dehydrate special grape 3 fruit

opaque field
#

silly question, how do you specify that a machine needs two different items to work? I need my cream cheese maker to require milk and vinegar

brittle pasture
#

AdditionalConsumedItems

lucid iron
#

If u had more than 5 u get generic

brittle pasture
#

that'd make it apply for every recipe

opaque field
#

ooh perfect ty

brittle pasture
#

look at the vanilla furnace for examples

#

note that you can't specify categories

#

only exact ids, so you can only use one type of milk

opaque field
#

okie, thank you 🙂

brittle pasture
#

(now if you want your fuel to be "any milk" instead of just "large milk" there's a certain mod for that)

brave fable
# twilit quest The tile property "Water: T" is supposed to make the water overlay appear, regar...

so when setting up water tiles, these conditions are checked:```cs
if ((isOutdoors.Value || HasMapPropertyWithValue("indoorWater") || this is Sewer || this is Submarine) && !(this is Desert))

from there, it just checks for a non-null value of `Water` on each `Back` tile, and if the value isn't `"I"` (for 'invisible') then you get a visible water tile.

the catch might be in your implementation; this happens in `loadMap` which is generally only called when the map is first loaded or its asset name changes
opaque field
#

it would probably simplify things if I could specify 'any milk' instead of having to make separate cream cheese and goat cream cheese recipes

#

oh! I have two published mods on Nexus, does that qualify me for the modauthor role?

brittle pasture
#

oh wait a second

#

your milk is the primary input right

twilit quest
brittle pasture
#

if so ignore everything I said regarding milk SDVpufferlurk

twilit quest
brittle pasture
#

(I thought it was also a fuel)

twilit quest
#

^_^;;;;;;;;;;;

brittle pasture
opaque field
#

aha yeah milk is the primary input, and then I wanted it to require vinegar too for the lactic acid so is it still additionalconsumeditems?

brittle pasture
#

yes

opaque field
#

ok sweet

brittle pasture
#

I do think having separate cow cream cheese and goat cream cheese is a good idea SDVpufferwoke

brittle pasture
opaque field
#

okie :3 hahah I DO want a reason to make sprites for both because tbr I love making cute little sprites

wanton pebble
#

so I may potentially be dumb

#

In what order do DayEnding trigger actions fire?

devout otter
#

Did something change that make DayStarted trigger doesn't work anymore on loading?

uncut viper
wanton pebble
#

Then yeah I'm an idiot. If I put the removal first, then that'll remove the current day's moddata, and then if a double saloon, it'll then write the new one

#

Thankfully I caught this three duplications in

twilit quest
#

SUCCESS! Thank you so much, @brave fable! That was incredibly helpful. ❤️ All because of one capitalized I instead of i ^_^;;;;

opaque field
#

ok stupid follow up question, how does one ping the bouncer?

devout otter
#

My DayStarted trigger fires if I sleep and immediately check it. But if I quit before checking and then load again into that day, it doesn't work anymore.

uncut viper
#

the game has not updated in nearly 7 months, so nothing has changed with triggers

#

its possible that whatever condition you are checking for does not pass until a save is already loaded

devout otter
#
                    "Id": "DolphINaF.ForestMice_Wizard.CatHaunting",    
                    "MarkActionApplied": false,                        
                    "Trigger": "DayStarted",
                    "Condition": "PLAYER_HAS_MAIL Current DolphINaF.ForestMice_Wizard.CatTrinket received, mushymato.TrinketTinker_ENABLED_TRINKET_COUNT DolphINaF.ForestMice_CatTrinket Current >0",                    
                    "Actions": [
                        "Spiderbuttons.BETAS_SetNewDialogue WizardMouse \"Mods/DolphINaF.ForestMice/Misc:Wizard.CatHaunting\" True",                            
                    ]
                },        ``` This should be a simple Flag condition, though.
#

I'll tinker with this some more...

brittle pasture
halcyon nest
#

we gettin another Cheeto? SDVpuffereyes

opaque field
#

can figure out cream cheese maker but not a cheeto signal lmao

brittle pasture
#

twas a joke, I pinged bouncer myself

#

all you have to do is stay still for a followup

torpid sparrow
#

turn on the cheeto signal! cheeto in the sky

opaque field
#

okay 😄

halcyon nest
#

GRAB THE SACK BOIS WE’VE GOT A LIVE ONE

lucid iron
#

Oh yeah u need a wiki account

#

To add self to page

opaque field
#

oh! okay can go does

lucid iron
#

But wait for reply b4 u actually do the edit

uncut viper
devout otter
#

Yeah!

uncut viper
#

what is the condition?

devout otter
#

"When": {"Mouse": "Wizard"} whereas "Wizard" is randomly chosen.

uncut viper
#

is Mouse a config token or a dynamic token? if its dynamic then its probably that token thats not ready yet

lucid mulch
#

Patch summary should say

devout otter
#

The token does trigger, else the Wizard wouldn't appear to begin with. But probably indeed the problem of it not being ready yet when the Trigger should be checked.

sturdy charm
#

hii does anyone know how to make custom NPC work with the poly mod? 😭 im struggling so bad

brittle pasture
#

is this your own mod or someone else's

lucid iron
#

Which poly mod

sturdy charm
#

my own custom NPC and polyamorySweet

#

or if theres any custom NPC that works with the poly mod you know that i can refer to?

brittle pasture
#

why/how doesn't it work?

wanton pebble
#

There are multiple poly mods and all should automatically work with NPCs

brittle pasture
#

I don't think there's anything on your end to decide

wanton pebble
#

Free Love, the original, just got an update. Polyamory Sweet was the 1.6 version of it until it added new content to it. Polyamory by EnderTedi is a third, but it's more in beta right now

#

All three natively have a character work with them if they're datable.

quartz mica
sturdy charm
#

and it crashes

brittle pasture
#

!log post your log then

ocean sailBOT
#

Important note: Your computer username may appear in the log. If your username is your full name, please be aware of this before uploading it.

Please share your SMAPI log file. To do so:

  1. Open this page: smapi.io/log.
  2. Follow the instructions at the top of the page to upload the log file. (Don't copy & paste from the console window!)
  3. After uploading, it will show a green box with a URL to share. Post that URL here.

Please do it even if you don't see any errors. This has useful info like what mods and versions you have, what the mods are doing, etc. If the issue didn’t occur in your last session, please load the game to the point where the issue occurs, then upload the log.

sturdy charm
#

hold on

lucid iron
#

Tbh it's probably not u and instead the poly mod

quartz mica
#

hm. that's not supposed to happen.

vernal crest
vernal crest
ocean sailBOT
#

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

sturdy charm
#

it says the tilesheet directory has directory climbingg but thats literally how i do with my other maps zzz

#

i tried putting it out in /Maps too and it wont work either

uncut viper
#

this is just a tilesheet climbing error and not related to polyamoury at all

#

just need to fix it in your spouse patio

sturdy charm
#

umm how do i fix it

uncut viper
#

!tilesheetclimbing

ocean sailBOT
#

When creating or editing maps in Tiled, one common error is tilesheet climbing, marked by red text containing "invalid tilesheet path '../../..'. This is caused by SMAPI not being able to find the tilesheets needed by the map file. To prevent this error, make sure that you have a copy of all necessary tilesheets in the folder containing your WIP tmx file. Copies of vanilla tilesheets can later be deleted, but must be present while working on your map.

If you get this error with a completed map, an easy way to fix it is to open your tmx file in VS Code or a similar text editor, find all of the places with <image source=, and remove the filepaths to so that only the tilesheet names remain. For example, if the code says <image source="Content (unpacked)/Maps/townInterior_2" width="512" height="64"/>, change it to just <image source="townInterior_2" width="512" height="64"/>.

sturdy charm
#

ok so in tiled i cant seem to edit it

quartz mica
#

still not sure how to fix my hair mod

uncut viper
lucid iron
#

Did you embed the tsx

sturdy charm
#

how do i do that again (its been 8 months since i touched modding again)

#

OH

#

wait

sturdy charm
lucid iron
#

Well u still have to fix the path

sturdy charm
#

the path works now

#

im gonna do another test run

quartz mica
normal rain
#

I just published my first mod, which is designed to help you track fishing perfection and lets you know which fish you can go catch in the current conditions! If you check it out, please let me know if you find anything that isn't working correctly. https://www.nexusmods.com/stardewvalley/mods/36032

Nexus Mods :: Stardew Valley

Press the V key to open a list of the currently catchable fish that you haven't caught yet. This helps you easily check if there's something you should go catch right now, so you don't have to track t

torpid sparrow
lucid iron
#

We can showcase for you though

lucid iron
twin wadi
# quartz mica ?

more details on what's expected and what's not working would be helpful SDVpuffersquee

quartz mica
#

I want to replace hairstyle 60 with my own custom hair

lucid iron
#

Shipped 🛳️

twin wadi
quartz mica
#

I have everything right except for how it's showing up in game

twin wadi
#

can you share a log?

#

!log

ocean sailBOT
#

Important note: Your computer username may appear in the log. If your username is your full name, please be aware of this before uploading it.

Please share your SMAPI log file. To do so:

  1. Open this page: smapi.io/log.
  2. Follow the instructions at the top of the page to upload the log file. (Don't copy & paste from the console window!)
  3. After uploading, it will show a green box with a URL to share. Post that URL here.

Please do it even if you don't see any errors. This has useful info like what mods and versions you have, what the mods are doing, etc. If the issue didn’t occur in your last session, please load the game to the point where the issue occurs, then upload the log.

quartz mica
#

oh yea hang on

sturdy charm
#

ok so the tiles dont go all the way down, but as far as i know the usual spouse room size is 6x9 like how others are

i tried making it 6x10 but the game wouldnt register it

#

i tried adding penny's spouse room and its also like that

#

can i somehow fix this orrr its just how the game is?

torpid sparrow
#

no you should be able to add the spouse room correctly

#

send ur json?

#

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

sturdy charm
torpid sparrow
#

wherever ur patching in the spouse room

#

it'll be wherever your npc data is i think

sturdy charm
#

its just this right..?

torpid sparrow
#

no i think u set ur spouse room under ur npc

#

so wherever you manifested the npc and put in all their details

#

possibly in ur content although idk how you set ur folder up ofc xd

quartz mica
#

yeah hair 60 isn't showing the one I want

sturdy charm
#

I SEE

#

ty!!!

torpid sparrow
#

did u see the mistake cause i didnt do anything yet SDVpuffersquee

quartz mica
#

there's no errors showing up, so it seems to just be loading the wrong hair

sturdy charm
#

but there was anothehr one in the npc file

torpid sparrow
#

Like one that looks like this?

"SpouseRoom": {
"MapAsset": "PeetaSpouseRoom",
"MapSourceRect": {
"X": 0,
"Y": 0,
"Width": 6,
"Height": 9
}
},

sturdy charm
#

hopefully it works O_o

#

yeah!

torpid sparrow
#

cause thats what i was thinking

#

yus

sturdy charm
#

i totally forgot that existed

torpid sparrow
#

yeah sometimes if i havent done the map yet i put placeholder and then i forget

uncut viper
# quartz mica

if the edited hairstyles png you sent earlier is exactly the same as the file in your mod, then your FromArea is wrong. it should match yoyr ToArea in this case

#

also hairs are only 16 wide

quartz mica
#

I don't know what the dimensions are where I need to make it show up

uncut viper
#

you look at the pixel coordinates in your image editor. but as said, it should match your ToArea in this case

#

your ToArea is correct

latent mauve
#

^

twin wadi
ocean sailBOT
#

Important note: Your computer username may appear in the log. If your username is your full name, please be aware of this before uploading it.

Please share your SMAPI log file. To do so:

  1. Open this page: smapi.io/log.
  2. Follow the instructions at the top of the page to upload the log file. (Don't copy & paste from the console window!)
  3. After uploading, it will show a green box with a URL to share. Post that URL here.

Please do it even if you don't see any errors. This has useful info like what mods and versions you have, what the mods are doing, etc. If the issue didn’t occur in your last session, please load the game to the point where the issue occurs, then upload the log.

uncut viper
#

i have already given them the info they need, the log will not help here as it is a json error

twin wadi
#

oh nvm sry didnt see your msg

quartz mica
uncut viper
#

is the png you sent earlier the one you are using? and did you change 32 to 16 for the width?

quartz mica
#

well... I'm trying to use that png

#

nothing I'm doing is working

latent mauve
#

lemme scroll up to see the png, but it did look larger than the default even

uncut viper
#

i have it and the original open and they are the same size (idk why the original is so tall)

quartz mica
#

the dimensions I was given earlier to use load the wrong hair.

latent mauve
#

well, based on the grid, the new hair is not aligned right on the sides (there's a pixel that goes over)

#

I corrected earlier, the 32 should be 16 for width.

#

16x128 is for one hair style with all four sides.

#

I'd said the wrong thing earlier, which is why I spoke up about it once I realized. ❤️

uncut viper
#

a stray pixel being one line over isnt ideal but it shouldnt prevent the entire hair from loading, all else being equal/correct

latent mauve
#

coordinates for FromArea should be X:48, Y:0

uncut viper
#

(i actually cant even find when hairstyles2 is even loaded in the decompile)

quartz mica
latent mauve
#

okay, so you only changed the 32 to 16 in one spot

#

Need to change it for both FromArea and ToArea

#

(That error says your FromArea rectangle is 32 wide while your ToArea is only 16 wide, so it can't load the space properly)

quartz mica
#

pros: it now loads in

cons: it's ugly

twin wadi
#

not ugly at all! it looks rly nice

latent mauve
#

Well, now you can tweak the art if you want and it'll update as soon as you change the PNG in your mod folder. xD

#

and after you do a patch reload if you're not reopening the game between checks

quartz mica
#

wait how

uncut viper
#

(i also think it looks quite nice)

latent mauve
#

Hair is really tricky tbh because the shading is hard to visualize when it's all grayscaled for dyeability.

#

I think you did a good job with it

torpid sparrow
quartz mica
#

o

#

I may redo the sprite a lil, make it fit into the width n stuff

gaunt orbit
quartz mica
gaunt orbit
#

God it's so inspiring to see someone making a custom farm type as their first mod. Modding has come so far. I remember the days when custom farm types basically didn't exist and modding seemed so much more arcane

#

It's really heartwarming to see how modding has been embraced since 1.6, between the code changes, new modders, wiki contributions, and just generally how creative and enthusiastic everyone has been

floral stratus
normal rain
#

I really wanted a mod like this for myself and am honestly surprised nobody else did it already.

floral stratus
floral stratus
golden basin
#

I made a custom wedding event and now for some reason its nto showing any weddings at all

brave fable
#

mmmmm. data models and exposed assets

tiny zealot
brittle pasture
brave fable
#

such arcaneries are beyond simple data frfr.

golden basin
#

im also getting no errors, heres my script

tiny zealot
#
     "Entries": {
        "EventScript": {
          "FC.Lyell": "..."
        },```
this clobbers the vanilla script (and any other scripts added by other mods earlier in the patch order)
#

you need TargetField

golden basin
#

target feild?

lucid iron
brittle pasture
#

you'll need two patches, one targeting EventScript and the other targeting Attendees

golden basin
#

fixed it

#

im a silly billy thankyou both

brittle pasture
#

note that you're also overwriting the vanilla positioning for the NPCs

tiny zealot
#

it deeply stinks that you can easily add your own script(s) but Attendees is singular and shared globally with all scripts

gentle rose
#

time to ask for a .16 update? /hj

tiny zealot
#

you can just slam the npc positions into your custom script and not use [SetupContextualWeddingAttendees] but blech

golden basin
#

wait is that true cause...hold one

#

nah not true?

#

its fine the way i wrote it i just needed a target feild like yall said

brittle pasture
#

weird, by all accounts marnie should be offscreen

golden basin
#

ooo in my event they are missing

tiny zealot
#

if you put that whole patch under a TargetField i would guess you added a new Attendees in a place the game doesn't see it

brittle pasture
#

yeah your Attendees patch are not applying

golden basin
#

so...whats that look like? a attendees patch?

quartz mica
brittle pasture
#

mostly same as whatever you did for EventScript

#

Attendees and EventScript are on the same level

torpid sparrow
golden basin
#
"LogName":"Lyell's Wedding to Player",
"Action": "EditData",
"Target": "Data/Weddings",
"TargetField": [ "Attendees" ],
"Entries": {
    "Marnie": {
      "Id": "Marnie",
      "Condition": null,
      "Setup": "Marnie 18 15 0",
      "Celebration": null,
      "IgnoreUnlockConditions": false
    },
    "Gus": {
      "Id": "Gus",
      "Condition": null,
      "Setup": "Gus 24 15 0",
      "Celebration": null,
      "IgnoreUnlockConditions": false
    },
    "Linus": {
      "Id": "Linus",
      "Condition": null,
      "Setup": "Linus 23 15 0",
      "Celebration": null,
      "IgnoreUnlockConditions": false
    },
    "Harvey": {
      "Id": "Harvey",
      "Condition": null,
      "Setup": "Harvey 19 15 0",
      "Celebration": null,
      "IgnoreUnlockConditions": false
    },
    "Shane": {
      "Id": "Shane",
      "Condition": null,
      "Setup": "Shane 19 17 0",
      "Celebration": null,
      "IgnoreUnlockConditions": false
    },
     "Lewis": {
      "Id": "Lewis",
      "Condition": null,
      "Setup": "Lewis 23 17 0",
      "Celebration": null,
      "IgnoreUnlockConditions": false
    },
  }
  },```
#

like so?

calm nebula
brittle pasture
#

yep (overwriting the vanilla positioning notwithstanding)

calm nebula
#

It's all information

brittle pasture
#

hmm, what happens if an NPC's starting position is initialized twice in the event script?

uncut viper
#

that wont remove NPCs you dont want to attend that attend vanilla ones

brittle pasture
#

(I'm thinking if there's a way to get around the fact that all wedding scripts share the same Attendees list)

calm nebula
#

Clones probably

uncut viper
#

an NPC initialized twice overwrites the initial positioning

golden basin
uncut viper
#

and movement controller

calm nebula
#

Elliott and his twin

golden basin
#

hell yeah

brittle pasture
#

ok now check the vanilla wedding again

calm nebula
#

Fun fact: there used two be two Elliott in

brittle pasture
#

if I'm right all of those NPCs will be missing (technically not missing but they'll be offscreen)

calm nebula
#

The spring festival

golden basin
#

yeah they are

#

how do i make that not happen?

#

or do they all hAVE to be there

uncut viper
#

send a mail flag when someone is getting engaged to your NPC and use that to conditionally patch the weddings, then remove the mail flag after

brittle pasture
#

yeah that seems the cleanest way
another thing I was thinking is instead of overwriting the vanilla entries add new entries for those NPCs, conditioned on them being on the beach

golden basin
#

so if i put everyone there would it be fixed

uncut viper
#

that other way seems bad for mod compatibility

brittle pasture
#

how about conditioned on being married/engaged to Lyell

golden basin
#

or can i place them like regular actors

uncut viper
#

you'd be unable to check if the actively-getting-married person is getting engaged/married

#

if i marry Lyell, then someone else marries someone else later, i will still be married to Lyell and that condition will be true

#

then we will be seeing different weddings

#

where mine will be messed up

#

also, the other farmhand would see a messed up version of my wedding

#

bc they would not be married or engaged to lyell

brittle pasture
#

even with Target farmer?

uncut viper
#

i do not know which farmer is used as the target in a wedding attendee condition

gaunt orbit
#

I've figured out how to embed files into a dll, do you think it would be bad to do that for json data in c# mods

uncut viper
#

yes

brittle pasture
#

a farmer is being passed into the context, which I'm presuming is the player being married

gaunt orbit
uncut viper
#

then it may work, though i still think a mail flag is cleaner

uncut viper
#

read or edit

brittle pasture
#

oh yeah I agree, I'm just stormbraining for the heck of it

brittle pasture
#

(placing actors yourself I mean)

gaunt orbit
#

Read I can see, though if the source is visible that seems like less of a problem. And making it harder to edit is a benefit of editing risks breaking things, or the data is meant to be used internally

#

Ideally public data should be run through the asset pipeline anyways

#

Though you are right that there's no other benefit

uncut viper
#

i dont find that a benefit

golden basin
#

SUCCESS

#

added them as temp actors

uncut viper
#

i dont think being unable to edit a mod becomes a benefit just bc editing it can break it, bc thats literally always true of any mod. if someone changes the files and it breaks, then thats that

#

you dont need to have unembedded json data for that to happen

#

"leave the files as is" is the default

#

otherwise, you may as well start minimizing and obfuscating your jsons

golden basin
#

why would you wanna edit someone elses mod anyway?

uncut viper
#

why not? i downloaded it, its on my computer, there's no reason i shouldnt

#

have you seen how many people come in here asking for help with personal edits

brave fable
#

i expose as much as i can to be editable, whether or not it's actually useful. maybe someone wants to edit my values to be wildly different, maybe it'll be useful for someone sometime

#

if they edit it and it breaks, it's on them, they know what they did, and it's easy to reset

gaunt orbit
#

That's fair

golden basin
#

does that change how the creator intended the experience to be though? wouldnt you want like people to experience your work the first away as you originally wrote it

uncut viper
#

why would you want to edit someone elses game?

gaunt orbit
#

I guess I'd rather people edit things using separate cp packs since that seems more reliable and easier to debug

uncut viper
#

does that not change how ConcernedApe intended the experience to be?

golden basin
#

Thats true actually i didnt think of that

gaunt orbit
#

As opposed to editing files directly which is sorta like the old horrible xnb modding

golden basin
#

but usually the idea is to play it through vanilla first time isnt it?

brave fable
#

i mean that's your idea

cloud pumice
#

sorry to pop in, there would be a difference if ConcernedApe gave explicit permission

#

(i apologize for the missing pfp i don’t know what to make it lol)

uncut viper
#

once someone has downloaded my mod, how they experience it is no longer my business

#

i provided them with a default and if they want to change it, they can change it, if they know how to

#

(bug reports notwithstanding of course.)

gaunt orbit
#

I don't mind people tinkering with stuff but I don't want them coming to me expecting tech support when they screw with internal stuff, or an update changes the format and their personal edits explode

#

For public data, sure, I'll handle that, but if you got your hands in the guts you void the warranty

uncut viper
#

imo, if you dont want something to be readable or editable, then json is the wrong format for you in the first place

golden basin
#

I didnt mean to start any arguements I was just curious

gaunt orbit
#

Probably, but it's easier to maintain than hardcoded dictionaries glued into a class somewhere

uncut viper
#

i dont think anyones arguing here, just talking (at least i hope no one considers this an argument?)

#

is it though?

golden basin
#

I may be misreading tone then, I struggle with tone sometimes though

gaunt orbit
#

I don't consider it an argument! I opened the question because it's something I hadn't seen discussed and I was curious how people felt about it and why

golden basin
#

I honestly have a lot to say on the matter? but I am unable to find words

uncut viper
#

and is maintaining that harder than maintaining your csproj setup to embed these files and then read from these files

#

when you could instead just make a MyCustomClass with the right fields already

gaunt orbit
#

I think there's definitely an argument for that, it just feels icky to me.

tender bloom
#

I tend to agree w wren that if you mess around you shouldn’t put that on the original author

gaunt orbit
#

Embedding files is pretty easy actually

uncut viper
#

to me thats still an entirely different argument and circumstances

tender bloom
#

But I do edit mods for balance or compat

#

To my personal taste

uncut viper
#

i can already decompile, edit, and recompile your mods and come to you with bug reports

tender bloom
#

I don’t read my bug reports 😈

#

(Joking but also kinda true)

gaunt orbit
#

I'll just keep doing what I've been doing and block people who do that

#

Keep the files public for everyone else

golden basin
#

I think it's disrespectful to edit art to be within your personal taste? And modding is an art form in my eyes. So when I hear people make personal edits it feels a little insulting? I understand if understaand if it's for balance, compact and if you have suggestions you wanna offer? But I don't know, it feels like a statement of "your work isnt good enough let me fix it" but that could be my misreading of tone

uncut viper
#

you are already editing art to be withiny our personal taste

#

you are a modder

#

is ConcernedApe not entitled to his game being considered his own art?

golden basin
#

He has given permission

#

there is a big difference

#

if he was asking people to stop I would stop

cloud pumice
#

permission is key

royal stump
#

fwiw, I've got some optional json files in my mods that people shouldn't touch, but I don't recall ever once running into a report caused by people messing with them
(it helps that the main one regenerates if they delete it, though)

golden basin
#

And he is different from a company too, indie developers deserve a little more respect in this reguard they are not factories like main stream gaming companies

uncut viper
#

im not gonna poke the point too much but i do think with a super popular and easily moddable (even before it was officially supported) game you don't really have the option of just saying "dont mod it" because people just... will, so im not gonna say i know CA's entire thoughts ofc but i dont think that decision can be made entirely unbiased

tender bloom
#

I do feel like when you make personal art edits it’s weirder to show things to the original author

#

Like i definitely wouldn’t tweet CA or w/e with my mods that edit the NPC hair color

torpid sparrow
#

I would agree with that. I don't like the idea of people editing my art specifically but if it's what theyre going to do dont tell me

torpid sparrow
#

I cant control it either way

uncut viper
#

i wouldnt show the original author my edits either unless they asked, but i wouldnt find it disrespectful if someone tweaked my mod on their own

golden basin
#

honestly I dont mind people editing my work if they ask first? Maybe id make it canon 😄

tender bloom
#

And there are also some art edits that can be hurtful/controversial, so I can see why mod authors wouldn’t want it in general

uncut viper
#

obviously i would like people to enjoy the things i make as i made them, but if they dont enjoy them as i make them, but do enjoy them if they tweak them just a bit, and keep it to themselves, then to me thats better than them not enjoying it at all

brave fable
#

i don't much see the idea of blocking personal or public art edits. i get a message a week about someone wanting to recolour my art/ui, they all get a green light. we're a modding scene, it teaches people modding, it gets people involved, i'm fine with it

tender bloom
#

There are some edits I feel more ok with like not showing the author directly but having it visible publicly

gaunt orbit
tender bloom
#

The main thing that would make me uncomfortable is people making any NPCs I might make more sexualized

torpid sparrow
tender bloom
#

Like it’s not necessarily bad but it makes me personally uncomfy

uncut viper
#

i dont think all the redistributing of vanilla assets is fair use

brave fable
#

if the original artwork is fair game, i don't see why mine is any more sacred

uncut viper
#

if its fair use to redistribute vanilla assets for the purpose of modding, then surely it would be fair use to redistribute bits of mine for the purpose of modding my mod

golden basin
#

Youve a right to your work blueberry : (

uncut viper
#

but i dont think many people here would say thats okay

gaunt orbit
#

I don't mind edits as a rule, but I do think it's somewhat insulting when it's marketed as a fix or improvement, or it's some incremental feature that could easily have been added/changed if requested

#

Bc then it's kind of like "Well why didn't you just ask"

uncut viper
#

to be clear i also 100% agree when its posited as an improvement in some regard

tender bloom
#

Yeah, that’s also true. If it’s “Better Portraits” that feels way worse than “Some Different Style Portraits”

golden basin
#

hmm its a complex issue isnt it?

uncut viper
#

i have asked people to not make edits of my mods before bc they named it something like "[my mod] but cuter" which felt rude

torpid sparrow
#

oh thats wild

brittle ledge
brave fable
torpid sparrow
#

although i guess the same could be said for every "but cuter" mod for vanilla

tender bloom
#

I also kind of feel like I’m not very good at portraits so if I do ever release my mod w NPCs I’d be happy to have people make alternate portraits

gaunt orbit
#

...maybe I will rename better beehouses

#

That feels somewhat hypocritical now

brave fable
#

Different Beehouses (to your preference)

brittle ledge
tender bloom
#

“More Powerful Beehouses”?

gaunt orbit
#

Configurable Beehouses is probably a more accurate name anyways

calm nebula
#

Hi bluebs! How do I check my jukebox hours

gaunt orbit
golden basin
#

I think maybe my sensitivity to people editing my work might be because ive been bullied about my art so much tbh?

gaunt orbit
#

You're not wrong

round timber
brittle ledge
#

There's tons of "better" mods out there, but tbh I mind it less with stuff like QoL/mechanical improvements

torpid sparrow
brittle ledge
#

vs. something like art that's subjective

brave fable
tender bloom
#

I do feel like for functionality stuff better at least implies some direction in the change, like “Better Beehouses” would make me think it makes more honey, different honey, etc

golden basin
brittle pasture
#

I'm proud to say I've never used "Better" to market my mod. I have, however, used "Immersive", which is arguably even more shameful

golden basin
#

personally I still dont care as long as im just asked first

uncut viper
calm nebula
#

Brb, making "slightly worse controls"

golden basin
#

I even let people use my assets freely if they just ask

calm nebula
#

It just flips the controls randomly

gaunt orbit
golden basin
#

mod that gives your farmer just a larger head by two pixels

#

better farmer

gaunt orbit
#

Though Beehouse Tweaks still would've been a better name

#

Fuck

royal stump
#

I ended up with multiple "custom X" and one "X settings" SDVpuffermlem

calm nebula
#

I ended up with two dozen pairs of handknit socks

uncut viper
#

Bweaks

royal stump
#

or just an actual descriptive adjective for w/e it does

torpid sparrow
#

Better Beehouse (For Me)

tawdry warren
#

How do I get the Mod Author role?

uncut viper
#

have you publisheda mod?

tawdry warren
#

yeah

brave fable
#

IMO Better Beehouses

tender bloom
#

You need a certain number of levels here and a mod published

torpid sparrow
#

Get to farmer rank

gaunt orbit
#

It's mentioned in the roles channel!

uncut viper
#

are you level 25. i forget colours

round timber
#

(no)

calm nebula
#

Vaguely Different Portraits

round timber
#

youll have to chat a bit more and reach Farmer

calm nebula
#

Slight Change In Hoe Mechanics

tender bloom
#

“Subtly Ominous Portraits, Spot the Difference”

gaunt orbit
#

Make a Better Than Junimos mod and piss off everyone

round timber
#

this makes me think of Break the Bass

brittle ledge
#

damn, realized I missed my chance, I could've had Better Writer Elliott

uncut viper
#

"Beehouses, Salted to Taste"

tender bloom
#

For a minute I thought I had made Better Rarecrows and then I realized I called them Deluxe Rarecrows

torpid sparrow
#

Portraits Only I Want But Maybe You Do Too

royal stump
#

(is there a "take constant damage around beehouses" mod? SDVpufferthink)

tender bloom
#

Which is clearly a better name so I’m glad my past self was more sensible than my current self

tawdry warren
#

idk why I left this server, used to be in here years ago. guess I'll just let people stumble across the mod update. don't have a reason to spam chat to try and get farmer just so I can get a role shrug

gaunt orbit
torpid sparrow
#

true that is the most efficient

brave fable
#

blueberrees blue berrer bees

round timber
gaunt orbit
#

Or <name>'s <adjective> <thing> if you're feeling spicy

tender bloom
#

When I fix More Prismatic Stardew clearly I should also rename it to Better Stardew Because Everyone Wants Rainbows

uncut viper
#

my second first mod is <name>'s <adjective> <thing>

torpid sparrow
#

Whose extra books? Button's

brittle ledge
round timber
#

where are the oranges....

#

so sad...

royal stump
#

take after my first mod and name it something it doesn't do SDVpuffersmart

gaunt orbit
royal stump
#

yep

tawdry warren
gaunt orbit
#

I always wondered about that

round timber
uncut viper
#

maybe its like a pokemon. its a Manager of the Farm Type. weak to GameLocation type

round timber
#

(also no one has perms to post in mod showcase, its for the bot only)

torpid sparrow
#

and then we can send it to showcase

tawdry warren
#

kk, I'll do that in a few, took over as the maintainer on it, giving it it's own open source repo rn

uncut viper
#

did the original maintainer give you permission to open source it