#making-mods-general

1 messages Ā· Page 462 of 1

uncut viper
#

what did you even do to make it?

#

and what content.json file did you double check if there is none at all

#

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

uncut viper
#

you're making a Content Pack, not a C# mod

quaint portal
uncut viper
#

you should not be making a "project" at all

#

its just json files in a folder

quick sand
#

if youre making a content pack you shouldnt use an ide ie: visual studio

uncut viper
#

im not sure where you got it from that you need to be using Visual Studio and compiling things for a CP mod, but its incorrect

quick sand
#

just notepad or any simple text editor

uncut viper
#

follow the links in the startmodding command up above

quaint portal
#

OH ok fantastic thank u i think i was just following a really bad tutorial thank u sm!!!!!

urban patrol
#

(we don't recommend notepad because it doesn't have things like auto indentation)

uncut viper
#

if you were making a C# mod, you would be using Visual Studio and compiling things

#

a content pack for Content Patcher is not a C# mod

urban patrol
#

notepad++ or visual studio code are ideal for CP

uncut viper
#

not commuinity

quick sand
uncut viper
#

Visual Studio Community is a full-fledged IDE

urban patrol
#

man i always mix them up, sorry

uncut viper
#

and likely what they were already trying to use

#

its Visual Studio Code

urban patrol
#

visual studio code?

#

great, edited my message

uncut viper
#

also, while not directly relevant to your original issue, if you think you needed Json Assets, you don't

urban patrol
shut edge
#

anyone know what that top middle one is?

brittle pasture
#

probably unused

shut edge
#

well i'm stealin it

valid folio
#

Hi, I need to set the minimum and maximum quality that a harvested item can have, but I'm not sure how to write the value. Is it a number or do I write the name directly, like iridium?

"HarvestMinQuality": ?
"HarvestMaxQuality": ?

brittle pasture
#

a number from 0 to 4
0 - base, 1 - silver, 2 - gold, 4 - iridium

lucid iron
hard fern
#

what ever happened to 3

drowsy pewter
#

eated

calm nebula
#

There is a star for it

#

I assume CA decided against it

lucid iron
#

I think ca did it just cus iridium is bigger jump in price

#

Maff reasons

urban patrol
#

i have a C# but also kind of general programming question bc i'm rusty. if something matches multiple if statements, will they all execute? what if i put break in?

for example (pseudocode), what would happen if i put an iridium tomato in:

  print("Yay yippee!");
  break;
}
elif (quality is silver){
  print("Booooo.");
  break;
}
elif (item is pepper){
  print("Spicy!");
  break;
}
return true;```
obtuse wigeon
lucid iron
#

Switch case

calm nebula
#

This is an elif tree

#

Sir

hard fern
#

Elif

lucid iron
#

Oh i got confused by question i thought nic wanted to know what to use here

#

Break doesn't do anything bc u aren't in a loop or a switch

urban patrol
#

uhh if there's a better way than an elif tree then i'm open to hearing lol

uncut viper
#

(also an iridium tomato cannot match all of those anyway)

lucid iron
#

(this may be different for other languages)

drowsy pewter
#

i think the answer to the question is only the first valid one will execute

lucid iron
#

Ignoring the break; part the actual case is that iridium tomato succeed check 1 and so you get Yay yippee

drowsy pewter
#

can someone answer that

urban patrol
uncut viper
#

theres if-else statements, switch statements, and whatever you call the other version of the switch use

lucid iron
#

Yeah that's what elif does

urban patrol
#

ok perfect that's what i want. so i just have to make sure more specific ones come first

uncut viper
#

whether or not it stops depends on which you use (i believe. im not actually 100% sure if C# switch cases fall through? i think it can vary per language?)

lucid iron
#

Well C# force u to use break or goto in every case right

#

So it's no fall through enforced

calm nebula
#

Yeah you have to goto case

uncut viper
# drowsy pewter can someone answer that

(it couldnt be answered before clarifying the differences between structures because the answer is different depending, and the use of both if and break in the pseudocode made the intent unclear)

lucid iron
#

a iridium pepper would print Yay yippee! and Spicy!

#

(whether it's on 1 line depends on printf impl)

urban patrol
#

oh yeahhhhh that does ring a bell

#

yeah ignore the break lol idk what i'm doing

uncut viper
#

easier to remember if you keep in mind what elif means aka else if
meaning "is this iridium? do this. otherwise if its a pepper, do this"
it wouldnt do the second one with an elif because its not an "otherwise" situation

urban patrol
#

yeah makes sense! in this case what i'm trying to do is set a CT, so i do actually only want 1 CT to be set, the more specific the better

#

this is for my tile action similar to the luau soup if you recall

lucid iron
#

hm u can do that in content right? sorta?

urban patrol
#

i don't believe so? there's no way to see what the player is holding when they interact

lucid iron
#

for case of just 2 CT it is simply If

uncut viper
#

yeah she needs C# for this anyway so may as well do it easier in the code directly

lucid iron
#

hm i encounter weird license scenario

#

context is that few months ago i wrote a PR for data layers to improve passable checking

#

as part of that i made a custom IsTilePassable

#

data layers is MIT

#

now i yoink what i wrote then for me own mod, which is MPL

#

what is the license of these 10 lines of code blobcatgooglyblep

uncut viper
#

practically speaking id say whichever is the more permissive of the two, i suppose (im not familiar with MPL)

#

or i guess maybe just MIT since in writing and submitting the code to it you agreed to make that code specifically, MIT?

lucid iron
#

i guess so? blobcatgooglyblep

ivory plume
#

You're still the original author of that code. You contributed it to an open-source repo, so it's covered by the open-source license as part of that repo; but you can still republish that code elsewhere under a different license. (It'd be different if you submitted it under a contract which transferred the copyright, rather than just contributing it to the repo.)

drowsy pewter
#

I wonder what topically related mods I should shout out on my cooking recipes mod page SDVpufferthinkblob

calm nebula
#

Love of Cooking?

drowsy pewter
#

I think it's mentioned literally five separate times on the page SDVpuffersquee

calm nebula
#

Someone please make Tired of Cooking and Eating The Exact Same Food All The Time

quick sand
#

anyone know why this code would produce this?

#

ok didnt think it would be that big

#

trying to use spacecore to place 32x32 sprite in 16x16 but now it doesnt fit

brittle pasture
quick sand
#

yes

brittle pasture
#

then I have no other lead SDVpufferwaaah

meager basin
#

I'm having a problem where when I try to create a C# mod alongside a CP mod, it places a folder with the same name in Stardew Valley/Mods as the sub-folder in my actual mod folder (if that makes sense). It's then also either finding a duplicate mod or saying I don't have a manifest (when both the C# and CP do). Any ideas?

brittle pasture
#

are you using ModBuildConfig's bundled content pack feature

meager basin
#

Oh I see what you mean - I hadn't been. Thanks šŸ™‚

woeful lintel
#

don't be scared to ask for help if something is not clear, but I don't think FF will solve the issue you were having: it doesn't support scaling since it doesn't look very good as other people said.

urban patrol
#

does this event precondition take a qualified or unqualified ID, or does it not matter?

brittle pasture
#

either is fine

indigo yoke
#

is this just smapi being slow to correct itself?
It has Y update key but pointing to Z mod

devout otter
#

Yar something similar happened to me and I was told that it's due to local cache.

#

(It did it properly when I tried changing PC.)

indigo yoke
#

kk ty

ornate locust
#

does anyone finish their mod and just feel like they still should be Doing Modding? Like I'm stuck in mod zoomies

#

I am resisting the urge to push it immediately for testing purposes

hard fern
ornate locust
#

it's very NOW WHAT

#

I'm releasing December 1, a month more for people to play around with the beta and tell me if anything explodes. I played a full three years with it myself, heavily modded to see if anything exploded

#

also thanks everyone here for answering questions

#

because it has given me THE POWER to actually finish this dang thing

obtuse finch
#

Is there a way to allow custom NPC entering Elliot house/Leah's cabin?

#

I have Elliot house in NPC's schedule but it won't work

devout otter
hard fern
obtuse finch
#

When it hit 900, the NPC didn't move

hard fern
#

šŸ¤”

#

Do npcs care about entry requirements.. surely not

ornate locust
#

Wait

ornate locust
#

I made that mistake in my first content patcher mod

obtuse finch
#

oh

#

ohhhh

#

that might be it

#

curse you Elliott with two t

drowsy pewter
#

He's caused literally multiple problems over months in my current mod

#

(His fault of course, not mine)

meager basin
#

if i'm trying to read from all furniture items, is that done through a dictionary?

hard fern
gray bear
#

smelliott

obtuse finch
#

A bit of a silly question but between Sat6 and spring_6 command, which command would go through? Or both would be randomly choosen?

vernal crest
#

The dialogue page shows the order of precedence for the keys

#

So because <season>_<dayOfMonth> is higher in precedence than <dayOfWeek><hearts>, spring_6 would be chosen above Sat6 in the first year only (it's not valid from Y2 onward)

obtuse finch
vernal crest
#

Only if you're at 6 hearts or more with the NPC and there's no higher heart line

hard fern
finite ginkgo
#

Yes

vernal crest
#

Yup, day of month just as the single number is only valid in first year

hard fern
#

The more you knoe

devout otter
#

Th division is between "year 1" and "year 2 and up".

#

So spring_6_2 would fire on y2, y3, y4 and so on.

vernal crest
#

There is a key for use in any year, apparently: <dayOfMonth>_*

obtuse finch
#

I was so downed when the command can only applied Y1

vernal crest
#

You can do Y2 onwards separately like Dolphin said

#

This is just if you want the same line for all years

obtuse finch
#

I'm more of a "Different lines for everyday" rather than "Different line every years"

#

Both took extra efforts so Imma spare my sanity

#

a bit

obtuse wigeon
#

I'm very confused about the latest mod showcase, does Alex only have 3 fingers else where in the game and I've never noticed? XD

vernal crest
#

Nah, he was missing a finger for most of the game's history. He was given the correct number of fingers in 1.6.15 apparently

drowsy pewter
#

@blissful panther Hey DH, one of my beta testers noticed that when playing on steamdeck and using the MEEP image/text closeup feature, they could only tab through by doing up and down on the right joystick. Unlike reading mail, which they said it's possible to tab with the shoulder buttons. Is this anything you know about?

Otherwise the only way to move between images is to click on the arrows directly. This was also an issue for my blind beta tester to advance the pages, since they can't locate the arrow keys. I ended up coding a second text-only option for blind accessibility, but if you're interested it might be good to look into doing some button-friendly solution more like the game mail? SDVpufferthinkblob

#

Also when i typed button just now it wanted to show me buttons profile

#

thats.. interesting

vernal crest
#

button, first and only of her name

inner harbor
#

I remember the first time I finished writing a book. My brain was going "...and then they'll go to a party to celebrate and..." then I realized, I didnt' need to write the celebration. They'd won. The story was done.

obtuse wigeon
# drowsy pewter <@147736231072104448> Hey DH, one of my beta testers noticed that when playing o...

I found theres a LOT of custom menus that aren't able to be navigated through on the Steam deck, This wouldn't be odd if they also couldn't be navigated through on a linux desktop with a controller but quite a few can (not all of them but that's pretty expected). the only difference is that I've managed to find is the Steamdeck controller itself as using it as a controller via bluetooth for a desktop works as expected

brave fable
#

does the love of cooking work on a deck SDVpufferpleading

obtuse wigeon
#

I have yet to try LoC (it is on my list for my next game when that happens) so I shall have data to report then XD

drowsy pewter
#

But they did mention that LoC's "Ready to Cook" tab doesnt take into account context tag cooking... that being said, the tab does lag a bit when i have 500 recipes available and a billion fridges, so maybe its for the better that its not attempting to read a bunch of context tag fields at once SDVpuffersquee

#

(not an official bug report, they said they'd officially report it once my mod is actually out)

woeful lintel
# meager basin if i'm trying to read from all furniture items, is that done through a dictionar...

your question isn't clear enough, so I'll answer what I can think of:

  • With CP -> the Furniture data is in the format of a dictionary of strings: {"Furniture ID": "slash delimited Furniture data"}
  • With C#, depends what you want to read:
    • Check all Furniture objects placed in a location -> Location.furniture will get you a list of Furniture instances
    • Read through the Furniture data -> you'll get the same as with CP: a Dictionary<string, string>, either through the asset requested event handler or with DataLoader.Furniture
brave fable
drowsy pewter
#

I didnt confirm the behavior on my end, so its always possible my beta tester is lying to make my life harder SDVpuffersquee

brave fable
#

ah yes game1.player.recipescooked and game1.player.cookingrecipes and recipe.timescooked do not necessarily have the same value

#

the oldest trick in the cookbook

obtuse finch
#

ahh, I'm having trouble with this error?

#

Oh nvm! I figured it out

brave fable
#

mmmm yes recipescooked is keyed by the item id instead of the recipe id

tiny zealot
# obtuse finch ahh, I'm having trouble with this error?

if anyone else stumbles on this later, the issue is that Railroad is not accessible in spring y1, so the game tries to load "spring" as a fallback schedule. (this is why the wiki recommends that you make sure your NPC schedule has a plain "spring" entry)

calm nebula
#

Wait wut

opal hull
#

What usually causes the "skipped reload because underlying asset no longer exists" yellow SMAPI text? My content pack should be targeting the correct assets to edit, so I'm a bit stumped (also I've tried changing a few things around trying to fix some images not showing up and as I've got things set up right now none of the images are showing up in the game at all, so that's a thing too lol)

calm nebula
#

Plz show example

#

Does this happen only when quitting to title

tiny zealot
opal hull
devout otter
#

Farmer Portraits asset is only "aedenthorn.FarmerPortraits/portrait, AFAIK.

#

You don't tag a name onto it.

opal hull
opal hull
devout otter
#

Just use "Target": "aedenthorn.FarmerPortraits/portrait",

#

Aah I see.

opal hull
#

The mistyspring's version doesn't, so that might be what you're thinking if

#

*of

tiny zealot
devout otter
#

Then maybe make sure you have one base Load action that has no conditional.

#

And have the other conditional actions be EditImage.

brave fable
# calm nebula Isn't only one of them used

apparently only recipescooked is used, which increments the value keyed by itemproduced id (presumably whichever one was cooked since apparently the recipe can have one of several outputs)

frosty hull
#

@next plaza Hello, i have question about Space Core
where i can get src code repo for v1.28.4 like Nexus release?

opal hull
next plaza
brave fable
#

in this good and honest house we tag versions šŸ¤

opal hull
tiny zealot
calm nebula
opal hull
frosty hull
brave fable
next plaza
brave fable
#

not sure whether i'll check for all items in the produce list or just the first to match vanilla

lucid iron
next plaza
lucid iron
#

If i recall correctly the incompatibilities mainly came from those fancy harmony helpers for locals

next plaza
#

Huh

#

Well, those are too convenient for me to abandon

frosty hull
#

for now i have already fix & port for android and run without no error

#

but for sure i see you have fixed bug about

  • Fix some custom crafting recipes using SpaceCore being broke since 1.28.1, and fix incorrect custom skill name in custom buffs (thanks MoonSlime!).
next plaza
lucid iron
#

Narathip if you make a list of what you had to fix maybe it could be consolidated to PC

next plaza
lucid iron
#

Or at least have the problematic bits separated

#

I feel like harmony helpers r kinda doomed tho Dokkan

next plaza
#

While you’re here, I’ve been meaning to mention: I’m planning on splitting SpaceCore into two mods for 1.7, for the sake of multiplayer stuff.

lucid iron
#

Big weight bearing maybe

next plaza
#

There’s an issue on github where I have a vague idea of what part will go where

#

Haven’t started actually doing it yet, but something I’ve been meaning to give you a heads up on @frosty hull

drowsy pewter
#

kitkatcore

next plaza
#

Why would I name it after candy

#

Kitkats are tasty, but hardly mod-name-worthy

drowsy pewter
#

yum factor

next plaza
#

also didn’t I literally tell you the mod name in DMs

lucid iron
#

Kittycore and katcore

next plaza
brave fable
#

so which half is space and which half is core

drowsy pewter
obtuse wigeon
#

Oh the excitement for the name reveal is unfathomable

next plaza
frosty hull
next plaza
lucid iron
#

Would core depend on space

#

Or other way around

obtuse wigeon
#

Or a secret third option, they depend on each other and you PR'd a way to avoid cyclical dependancies

next plaza
#

Core depends on space, since:

  • space can exist without planet (core)
  • planet (core) cannot exist without space
next plaza
obtuse wigeon
#

Harmony is the C# equivalent of duct tape to the universe

frosty hull
#

i have weird question
why this game can't render more than 60fps?

obtuse wigeon
#

I think someone did some testing and increased the limit, it lead to really weird behaviour because a lot of stuff is tied to 60 updates a second, I can't remember off the top of my head exactly what weird behaviour occurred, but I think there was a decent amount relating to NPC behaviour and farmer behaviour too

#

(Looking through previous messages it was DecidedlyHuman who was doing stuff with increased framerate cap)

tiny zealot
#

if memory serves, monogame itself also has some behavior explicitly tied to an assumed cap of 60fps

#

stardew ships its own fork of monogame so that's not a dealbreaker per se, but it would involve Workā„¢ (again, if memory serves)

#

there's also the very single-threaded and cpu-bound nature of stardew, so i imagine with any realistic number of mods you'd struggle to exceed 60 anyway

brittle pasture
#

I recall at least a couple of instances of state-affecting logic being inside draw functions

#

so there's also that to deal with SDVpufferclueless

merry river
#

it's me again who needs help yet again SDVitemblobfish i am running into two issues here:

  1. i made a provisional house for my custom npc, the exterior loads in perfectly, but i can't get into the house (yes, i do have made an interior map already but smapi is throwing an error and i'm not sure where i did wrong)
  2. the other issue is that my npc simply doesn't load in. i can't figure out why, i already compared my code to functioning custom npc but i feel stumped at this point??
next plaza
#

(I actually have code to uncap the FPS in the VR mod, but I’m going to need to still limit the update rate (if I didn’t already) and probably patch some rendering/animation things)

#

(I am able to reach 90 FPS fine, despite my crimes. Probably could go further if the headset wasn’t calling it again)

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.

hard fern
#

Im assuming you didn't load it properly

hard fern
#

You loaded it as {{ModId}}_PeiMingHouse, but the game is looking for PeiMingHouse because you didn't include the {{ModId}} in the Data/Locations entry

merry river
#

oh let me fix it and see if that works

#

hmmm no i'm still getting the same error

tiny zealot
#

make sure you also update your CreateOnLoad to match (MapPath should match the Target you are loading to)

merry river
#

this is what it looks like right now in my code and the warps

#

oh wait

#

no, i can't set the mappath to data/locations, that wouldn't make sense, right??

autumn tide
#

hmm is it possible to yoink alex's dog specificTemporarySprite spritesheet and use it in my mod as a temp NPC for events?

#

assuming it's gonna be in cursors

#

cause yk

#

cursors

#

the sprite was indeed in cursors SDVpufferthumbsup

dusky sail
#

its always springobjects and cursors

autumn tide
#

ik

dusky sail
#

they gotta invent summerobjects

autumn tide
#

omg i'm always SHOCKED when something isn't in cursors

#

like it just doesn't feel right

#

like i know there's literally a file called 'emojis', but i feel like emojis should be in cursors, yk?

dusky sail
#

strongly agree

autumn tide
#

eugh sprite shenanigans time

#

why am i making a new event when i already have a broken event that needs fixing

#

scope creep ig-

autumn tide
dusky sail
#

oh that reminds me i need to update it

autumn tide
dusky sail
#

just the number dw

autumn tide
#

ohhh gotcha SDVemoteheart

obtuse finch
#

I noticed when writing dialogues others stick these particular numbers: 2/4/6/8 next to {dayofweek} and {season}, I don't really understand why?

autumn tide
#

oh, lemme send a wiki screenshot!

obtuse finch
#

Really sorry, I'm unable to access the wiki right now

autumn tide
#

no worries!

#

good luck with your mod :))

obtuse finch
#

Ah, I've completely misunderstood them

autumn tide
#

aw, sorry about that

#

if you want further elaboration we're here lol, always better to check first

obtuse finch
#

It's fine, I'm glad to know it before sinking myself too deep

#

tysm, both of you

#

Ok, just making extra sure
If I were to write both every {seasonal} and {dayofweek} dialogues, would the game only applied {seasonal} dialogues?

autumn tide
#

uh, could you clarify?

merry river
#

sorry again, but i didn't get an answer and i still couldn't figure it out myself. my npc's house interior still isn't loading and i really can't find the cause for this.
the npc has at least finally loaded into the game but i can't interact and the gift tastes aren't loaded properly (only the standard loves and likes); the apperance also doesn't change for winter.
here's my content.json: https://smapi.io/json/content-patcher/042c34f6e38a4108a9d8f4d1f1ba42e1
I'm getting frustrated so i'm taking break for now, but i do appreciate any help SDVpuffercry

autumn tide
urban patrol
#

!giderror

#

damn

#

!tilegiderror

#

ugh hold on

autumn tide
urban patrol
obtuse finch
#

I'm basing my codes on another mod, which they have written all {dayofweek} (Mon, Tue, Wed,...) and {season_dayofweek} (spring_Mon, Winter_Mon, etc)
Base on what I know so far, I don't think the game would features any {dayofweek} dialogue then?

#

Maybe it's easier if I just show it with pictures

urban patrol
#

this is the order in which dialogue is chosen

autumn tide
urban patrol
#

aka 1 is preferred by the game, falls back to 2 if not found, etc etc

#

so yes spring_mon will always win over Mon

merry river
urban patrol
#

my message got automodded because i said tr*mp 😭

merry river
obtuse wigeon
urban patrol
#

yep lmao

gentle rose
#

scunthorpe in action

merry river
gentle rose
#

-# (imagine if I got timed out for that message)

obtuse finch
obtuse wigeon
urban patrol
#

there’s someone i share a server with whose username is a dutch(?) word nij but spelled with two gs instead of a j and they got absolutely HAMMERED by auto mod until the mods whitelisted their name

urban patrol
autumn tide
obtuse finch
autumn tide
#

..also if you wanna help out i wouldn't say no SDVpufferwow

hard fern
#

Omg

#

I can't spell

safe kernel
#

how do i add a mod to the game? but like in a easy way

urban patrol
#

!gs

ocean sailBOT
urban patrol
#

unless you’re talking about making a mod

safe kernel
safe kernel
urban patrol
#

we can’t walk you through setting up mods in here. you might have luck with #modded-stardew but i don’t guarantee it

latent mauve
#

It's been done before in there

merry river
# urban patrol

I honestly can't get it to work. I must have done an error with saving the map somehow but I really don't understand how to make sure that the tilesheets are where they belong? everytime i open the file again it says the sheets are missing even though they are in the same folder. SDVpufferwaaah

autumn tide
#

hey! would animating a 16x16 pixel temporary character in an event work with the regular animate command? checking bc the wiki specifically mentions the image size

autumn tide
finite ginkgo
#

It would, not sure why the wiki mentions specifically 16x32, that's only applicable to regularly sized NPCs/temporary actors, could probably use a slight rewrite

merry river
autumn tide
#

i deeply empathize with your pain

#

ugh my maps have been broken for days and i can't bring myself to keep testing them

ornate trellis
#

somewhere in the distance husky is laughing maniacally whenever maps are mentioned

autumn tide
#

😭

merry river
quick sand
oblique meadow
merry river
# quick sand

i checked and i haven't, let's see if that works. i wasn't sure if that is okay to do with custom tilesheets? i used lumisteria's and added it as a dependency in the manifest

uncut viper
#

embedding it does not actually put the png file inside your map, it just keeps the information about the tilesheet inside the map file rather than in a separate file

oblique meadow
#

Also. Are you specifically loading your custom tilesheet in the Content file? You should be loading with a codeblock similar to:

            "Action": "Load",
            "Target": "Maps/Shrines",
            "FromFile": "assets/Tilesheets/Shrines.png"
        },```
uncut viper
#

such as where to find it, how many tiles it has, etc

#

Invalid Tile GID typically means you did at one point save your map when it had errors/red X tiles from a missing tilesheet and it fucked up Tiled's GID calculations when saving

#

it is fixable assuming thats all the issue was by making sure all the tilesheets are present where Tiled expects them to be (so it can find them) and re-saving the map

quick sand
#

just the tmx itself

uncut viper
#

you dont need to load a custom tilesheet but its highly recommended

#

assuming you keep the tilesheet alongside the .tmx, it doesnt need to be loaded, but it puts it in the Content pipeline if you do

merry river
uncut viper
#

you dont

#

thats done in the Lumisteria mod

merry river
#

yeah okay, i thought so, just wanted to make sure

oblique meadow
#

You only need to load if you make your own

#

but if you're doing existing assets loaded by vanilla or another mod, you're fine

merry river
#

i don't have any of my own, i only have those z_(tilesheetName) from the vanilla ones, so they don't need to be loaded in separately, right?

oblique meadow
#

correct.

uncut viper
#

do you have .tsx files in the same folder as your .tmx, void?

merry river
#

yes, i do! just tried again and i must have somehow messed up the reference to lumisteria's png file. have to fix this first haha

#

(i was stupid and renamed the png)

uncut viper
#

if you do, then re-adding the tilesheets again with embedding will give you duplicate sheets. it may be easier to fix the .tsx in notepad++ first, get the tilesheets sorted, and then embed them from the .tsx

#

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

uncut viper
#

this is for a different error, but the second half describing how to fix it would be the same, just for the .tsx instead

gentle rose
#

wasn't someone saying they would add your map fixer to that command

uncut viper
#

they made a separate command, but void is having a different issue, and my fixer does not work with .tsx files

gentle rose
#

yeah I was just curious in general

#

I could probably add an "embed existing tilesheet" button to the extension at some point

uncut viper
#

once you've edited the .tsx void you need to move all the tilesheet pngs you're using into the same folder as your .tmx and .tsx file, even lumisteria's tilesheet

#

Tiled already lets you embed an existing tilesheet

gentle rose
#

no I mean to replace a non embedded tsx with an embedded tilesheet in place

uncut viper
#

that is what the button in Tiled already does

gentle rose
#

why can't void use that then? SDVpufferthinkblob

merry river
uncut viper
#

they can, after they fix the misplaced sheet so there arent errors when they open their map

merry river
#

embedded everything and made sure everything was in the same folder while i did the edits

uncut viper
#

you clicked the button in the bottom.... uh, right? of Tiled?

#

(i think its bottom right?)

gentle rose
uncut viper
#

this one

merry river
#

yeah, there's a button that says "embed tilesheet" or something like that

uncut viper
#

ok, then try saving your .tmx again and loading the game again

merry river
#

i did and my map is loading with the warps working

#

now i only have some clipping issues and i can run through the walls haha, i'll have to check how to fix that

uncut viper
#

okay, then now is when you would typically remove the .png files from your folder, assuming there are no more edits to make

merry river
#

but at least i got this damn house interior in the game

uncut viper
#

when you publish your mod, there should not be .png files next to your tmx, and definitely not Lumisteria's .png file

#

but if you ever want to make any edits to your .tmx, they will all need to be there. only when editing, not when publishing!

#

assuming you edited the image sources like the command said, they will not have any tilesheet climbing, so when the game loads your map, it will look in the Maps/ folderl ike its supposed to

#

even if you dont have the png files there

merry river
#

there's only those files in the mod folder, no png

uncut viper
#

does your map still load if you delete those .tsx files?

merry river
#

in my development folder, there's everything

uncut viper
#

(or move them somewhereelse temporarily as a backup)

uncut viper
#

(and to clarify i mean load in game, not in Tiled. it shouldnt load in Tiled without the .pngs)

merry river
#

hmmm no it won't load without the tsx files

#

OH WAIT
does the definition of edits include stuff like adding tile properties to doors and all?

uncut viper
#

did you embed your tilesheets for both PeiMingExterior and PeiMingHouse? for every single tilesheet?

#

any edit

#

if you ever have to sit "Save" then your tilesheets must not have any errors

merry river
#

well then i obviously did some edits, woops. i feel stupid now SDVpuffergrimacing

uncut viper
#

nothing to feel stupid about! its a very common mistake for people to make when newer to map editing

#

it doesnt seem like it should mess anything up but it does bc Tiled is just a lil bit dumb

#

the .tsx's continued existence is a separate thing though

merry river
#

added the tsx files back in except for one where i really didn't edit anything, it's working again!

uncut viper
#

having the .tsx files does mean the tilesheets arent properly embedded, though how much you care to deal with that right now vs later (if ever, since its technically okay to do) is up to you right now, id say

merry river
#

but i suppose i have some more editing ahead of me because i can run through walls

uncut viper
#

it may imply some degree of duplicate tilesheets possibly though if something went a bit awry with the embedding steps you took which may prove troublesome in the future

merry river
uncut viper
#

if every tilesheet is embedded (vanilla or otherwise) in both of your .tmx files, then the .tsx files should not be required at all anymore, since their information should have been moved to the .tmx
but if at one point you tried re-adding the tilesheets from step 1 while also having a .tsx then there may be duplicates and you might not actually be embedding (or even using) the ones inside the .tmx data itself

merry river
#

oh wow why did they get un-embedded. how is it so difficult to save properly with that program!!!

uncut viper
#

if embedding is all you did before closing Tiled at one point it mightve not thought it had anything to save

#

so you can just like. paint a tile down or move something and then move it back or w/e

#

make it know theres changes to save lol

#

case in point of "Tiled is just a lil bit dumb"

merry river
#

hmmm no it does show the asterisk in front of the file name indicating changes when i embed the file

#

tiled is really an experience in itself

uncut viper
#

worth making a different, more visible change to a Tile and saving it to make it stick

#

just make sure you save this random change first before you change it back and save again

merry river
#

for the interior map, the tilesheets appear to be embedded

#

i also set an action command for the bed to be usable that didn't work either

uncut viper
#

does the interior map load without the .tsx files present then?
as for the bed command, im not sure of one that uses the Action property? do you mean a TouchAction? is it on the correct layer?

merry river
#

yeah i meant touchaction, and i also realized i put some of my tiles on the wrong layer instead of buildings so they are passable now. rookie mistkae

uncut viper
#

double check to make sure then that your bed TouchActions or tile properties are on the Back layer

valid folio
#

Hi, how are you?
Is it possible to choose the quality at which an item comes out of a machine? For example, I put in an item with silver quality and I want it to come out as gold. I looked on the wiki in the machines section and didn’t see any mention of this, maybe I should use EMC? Or is it enough to set HarvestMinQuality/HarvestMaxQuality like with crops?

uncut viper
#

(also void, if your current tilesheet woes are behind you, you can look into that link irocendar sent earlier to go to their thread about a Tiled plugin that might help in the future!)

hallow prism
#

there is a set quality field (may not be exact name) and you can check for the quality of an input

#

Quality (Optional) The quality of the item to find. One of 0 (normal), 1 (silver), 2 (gold), or 4 (iridium). Invalid values will snap to the closest valid one (e.g. 7 will become iridium). Default -1, which keeps the value set by the item query (usually 0).

#

QualityModifiers
StackModifiers (Optional) Quantity modifiers applied to the Quality or Stack value. Default none.

The quality modifiers operate on the numeric quality values (i.e. 0 = normal, 1 = silver, 2 = gold, and 4 = iridium). For example, silver Ɨ 2 is gold.

valid folio
merry river
gentle rose
#

it's in the pinned messages in that thread

merry river
#

oh my god SDVpuffertbh yeah i really need to go to bed.

latent mauve
#

Copy/pasting the object from a vanilla map will prevent that issue, but it's come up an awful lot recently for people creating new objects without copy/pasting

merry river
#

like this?

latent mauve
#

The Name field will be much further up

merry river
#

ah. oh my god this is getting embarassing

#

you guys are so patient and helpful, i am so grateful 😭

latent mauve
#

needed to open Tiled so I could get you a screenshot

uncut viper
#

map making especially is a bunch of stuff to remember, so i would say you shouldnt feel embarrassed. everyone starts somewhere, and even people who started a long time ago also make silly mistakes like forgetting to name it TileData

latent mauve
#

Yep, nothing to be embarrassed about!

merry river
#

i'm calling it a day, i need some sleep. if i have to think about tiles any longer i will combust SDVpufferchickcry but thanks to everyone's help here i finally managed to load the interior map in! now i only need to get some fine tuning done
thanks a lot! i will be back SDVpufferwoke

white vale
#

Is there a way to ADD to the monster drops field instead of replace? For example, this makes a green slime drop ancient seeds 99% of the time but it overwrites the rest. I can copy the entire field but that feels sloppy. I don't think TargetField works with these type of entries?

royal stump
uncut viper
#

use TextOperations

#

but TargetField does work with slash delimited strings as well

#

just use the field number like #6

white vale
#

Thanks guys, not to smart with this stuff but using the example this is what I made but no go. Probably me just being stupid lol

uncut viper
#

upload your json and log at smapi.io as screenshots will not suffice especially when they crop out the necessary information

#

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

white vale
ocean sailBOT
#

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

uncut viper
#

TextOperations is a list of TextOperation objects, you only have a singular object without the [ ]

urban patrol
#

i'm trying to add a conversation topic in C#, but the method says it needs a TriggerActionContext (which is a struct, and is just a bunch of variables being set) and an "out string error" which i think is an error to throw? how do i know what to pass into the method when i call it?
AddConversationTopic(string[] args, TriggerActionContext context, out string error)

calm nebula
#

No, dont do that

urban patrol
#

oop

uncut viper
#

that is just the method that controls how the "AddConversationTopic" trigger action action works

#

its not what you use to start a conversation topic

urban patrol
#

oh, so do i need to call a trigger action instead?

uncut viper
#

no

#

you have several options but easiest is probably just Farmer.addEvent()

urban patrol
#

i'll look at that, thanks

uncut viper
#

alternatively Farmer.autoGenerateActiveDialogueEvent()

#

the latter wont add it if theyve seen it before

urban patrol
#

hmm i do want it to be repeatable so i'll check the first

white vale
#

Sorry I can't figure it out, I've never dealt with textoperations and monsters.json is formatted very differently than what I am use to

uncut viper
#

its nothing to do with Monsters.json, your formatting of your text operation does not match the example on the CP docs

#

you are missing a pair of [ ] brackets

white vale
#

Haha, well now I feel stupid. Thank you šŸ™‚

uncut viper
#

(for future reference in case you run into similar errors with other things in the future, thats what that error means! about not being able to serialize an object into an array)

#

object { }
array [ ]

white vale
ocean sailBOT
#

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

white vale
#

Seems right to me IDK šŸ¤·ā€ā™‚ļø

uncut viper
#

the first one should be Entries and not Green Slime, which should be second, i believe

indigo yoke
#

Some one asked for it, so I did it but I don't want to publish to showcase I dont want to feel like I am spamming that channel
Generic mana bar API now is more open for content patch users with some new trigger actions and GSQ. Find it here https://www.nexusmods.com/stardewvalley/mods/39117?
If anyone can think of extra stuff, just post on the page or ping me here.

    Added new C# interface: IsCurrentManaGreaterThanValue(Farmer farmer, int valueToCheckAgainst);
    Added new C# interface: IsCurrentManaLessThanValue(Farmer farmer, int valueToCheckAgainst);
    Added new Trigger action: "moonslime.ManaBarAPI.AddMana #" which adds(or subtracts if negative) a value of mana to the player who triggered this
    Added new Trigger action: "moonslime.ManaBarAPI.SetMaxMana #" which sets the player who triggered this mana to #
    Added new Trigger action: "moonslime.ManaBarAPI.AddToMaxMana #" which adds(or subtracts if negative) a value of max mana to the player who triggered this
    Added new Trigger action: "moonslime.ManaBarAPI.SetManaToMax" which sets the player who triggered this mana to max
    Added new Game State Query: "PLAYER_CURRENT_MANA_GREATER_THAN_VALUE"
    Added new Game State Query: "PLAYER_CURRENT_MANA_LESS_THAN_VALUE"
    Added new Game State Query: "PLAYER_MANA"
    Added new Game State Query: "PLAYER_MAX_MANA"
white vale
#

"an 'Entries' path must have exactly one other segment: the entry key." Haha I hate monsters.json, if this was any other file it would be easy. I even looked on nexus to find examples and can't find 1 mod editing monster drops via content patcher.

normal trout
#

Hi, y'all. Emerging from the depths for a moment because I noticed someone opened a bug report on one of my greenhouse mods. It's been so long since I've even played or touched the mods, that I can't remember - is that not supposed to happen? Is that controllable? Is there a reason you can think of why that might happen? Any input would be appreciated so I can reply to this person. They shared a smapi log but I didn't see anything at all about my mod other than that it loaded. https://smapi.io/log/417cc18cbe2949e08cfbe95d49052ac4

ocean sailBOT
#

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

south dirge
#

Hello Everyone i am trying to make a mod that just increases the fishing bar a bit more per level to make fishign easier. I have unpacked the XNBS but have be unable to find the variable i would need to change or even what file i would need to look in. Can somebody gimme some advice about where to find it? I do know the variable should be BobberBar.bobberBarHeight but i cannot find where that variable is

uncut viper
uncut viper
ocean sailBOT
south dirge
white vale
ocean sailBOT
#

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

uncut viper
uncut viper
south dirge
uncut viper
#

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

uncut viper
#

see the second bullet point

south dirge
#

ok perfect thank you

white vale
uncut viper
#

the power of uncertainly changing things until they work

calm nebula
#

How I program TM?

valid folio
#

Another question: is it possible to add a context tag to a seed that you created for a crop?

uncut viper
normal trout
#

Like... I even have specific 0 dirt decay chance and a property to not clear empty dirt. So I don't know why it would be doing it.

uncut viper
#

oh, itd be the ClearEmptyDirtOnNewMonth

#

that will be clearing empty dirty on a new month

normal trout
#

But it's set to F

uncut viper
#

doesnt matter

#

its not checking the value

#

most (all?) map properties that have T as a value are only there bc they need a value

normal trout
#

... why wouldn't it check the value? That breaks any semblance of understanding I thought I had on how map properties work šŸ˜…

uncut viper
#

but its not setting anything to true or false

normal trout
#

That... is not how I understood it to work. Huh.

uncut viper
#

² The T value (short for true) is conventional, but any non-empty value will work too. from the wiki for maps

finite ginkgo
#

Its mentioned in small pri- yeah

uncut viper
#

putting that property there at all gives the map the property

#

tbf it never says that T means True either

normal trout
#

Huh. I wonder if that changed somewhere along the way from back when I was actively modding. Because I did a LOT of map work, and that's not something I remember being a thing. Good to know though. This is why I ask questions here šŸ˜„

uncut viper
#

aside from in that fine print that explains it

#

thats been the same for at the very least since 1.6

brave fable
normal trout
#

I'll delete the property entirely, repack the mod, and upload it for them/anyone who wants that as a version. Thanks guys!

calm nebula
#

I love fine print!

uncut viper
#

probably before 1.6 too i imagine but i wasnt here much so i cant say for certain

calm nebula
#

See my name

normal trout
#

Yeah I was modding well before 1.6, I'm a dinosaur šŸ˜…

uncut viper
#

actually i did do map modding in 1.5 and i think it was the same then too but i forget when that even released so

normal trout
#

This is what I get for disappearing for several major overhaul updates and then randomly having my adhd engage the hyperfixation, making cool stuff, and disappearing again weeeee šŸ™ƒ

uncut viper
normal trout
#

LIke... I started back when we were still not quite transitioning away from .xml replacement mods šŸ˜… It's been a while.

#

We've come a long way lmfao

#

Anyway. Thanks guys! Cheers šŸ™‚

calm nebula
#

Anyways

#

Blueberry, will you ever make Tired Of Cooking

brave fable
#

games aren't supposed to be realistic

uncut viper
#

source?

calm nebula
#

Smh realistically.... I'm being told things about parnsips

royal stump
#

SDVpufferchicksweatsip skimming some of my old decomps re above & a few properties like buildable were, uh

//IsBuildable checks, after comparing to Cave Rectangle and all that old stuff
(Game1.currentLocation.doesTileHavePropertyNoNull((int) tileLocation.X, (int) tileLocation.Y, "Buildable", "Back").ToLower().Equals("t") || Game1.currentLocation.doesTileHavePropertyNoNull((int) tileLocation.X, (int) tileLocation.Y, "Buildable", "Back").ToLower().Equals("true") || Game1.currentLocation.doesTileHaveProperty((int) tileLocation.X, (int) tileLocation.Y, "Diggable", "Back") != null && !Game1.currentLocation.doesTileHavePropertyNoNull((int) tileLocation.X, (int) tileLocation.Y, "Buildable", "Back").ToLower().Equals("f"));```
crude plank
royal stump
#

t or true or diggable-and-not-f

indigo yoke
crude plank
#

honestly same

normal trout
#

... Does anyone have a current test save that they'd be willing to open up quickly, throw my new greenhouse files in, and just make sure nothing is broken? I removed a map property and want to upload the new version to nexus. But I need to make sure I don't have a stray comma somewhere ready to end the world before I do lmfao. But I just realized that don't even have the game installed at the moment, let alone a test save set up with mods to be able to make sure the greenhouse works okay šŸ˜…

frosty hull
#

@next plaza Hello, can you commit your space core project of version 1.28.4?

ocean sailBOT
#

Log Info: SMAPI v4.3.2.1 - 1762523696 with SDV 1.6.15 build 24354 on Android Unix 33.0.0.0, with 26 C# mods and 58 content packs.

#

Log Info: SMAPI v4.3.2.1 - 1762523696 with SDV 1.6.15 build 24354 on Android Unix 35.0.0.0, with 26 C# mods and 14 content packs.

drowsy pewter
#

Wow, I really had no idea this mod existed. Looks like I have another thing to recommend besides LoC

#

But what happens if two recipes share the same ingredients, I wonder? SDVpufferthinkblob

next plaza
patent lanceBOT
#

k (#6943951) (2h | <t:1762571172>)

hard fern
#

šŸ¤” i dont suppose it's possible to make an npc "disappear forever", is it?

iron ridge
#

You can add a when clause to their data/characters

#

Or do what happens to Elliott while he's on his trip but just never bring them back

uncut viper
#

removing their data completely cancause issues with multiplayer especially if not done very carefully and would probably also lead to at least one night of yellow warnings in a players log about a no longer existing NPC?
id just make them perma-invisible

quick sand
#

@next plaza hello

#

do you know why this is happening?

#

tried to put a 32x32 over the 16x16

crude plank
hard fern
#

on the topic of more cursed npc things: would it also be possible to "lock" the player into not being able to progress heart levels with an npc? LIke if the player does something that's "Unforgivable", the npc would just refuse to be friends with them?

uncut viper
#

not in vanilla afaik

hard fern
#

would it be possible to work around that by like... reducing an npc's friendship every day?

uncut viper
#

well you can easily set them to 0 hearts every day, but you couldnt lock them to like, 2 hearts

#

not 100% reliably

hard fern
#

oh, well 0 hearts was all i really needed

uncut viper
#

then yeah you can do the AddFriendshipPoints trigger action

#

it accepts negative numbers

#

keep in mind any perfection implications

hard fern
#

npcs can be like, exluded crom forp

#

oh

#

*from perfection

tiny zealot
#

crom forp

hard fern
#

right?

uncut viper
#

yeah, but what about everything else they might unlock

#

like friendship recipes

hard fern
#

oh

#

i dont have friendship recipes....

uncut viper
#

then theres not much to worry about

#

im just saying to keep these things in mind

#

and ofc keep in mind the bug reports you'll get about not being able to raise hearts with them

hard fern
#

:) oh joy

tiny zealot
#

it's a shame there's no equivalent of divorce that you could set up to cause them to refuse gifts

hard fern
#

bestie divorce

hard fern
ornate locust
#

I can just see the bug reports you're gonna get over that for eternity

uncut viper
#

the player can still potentially gain hearts with them no matter what you do, even if only temporarily

#

if you set it to two hearts, but its their birthday and i give them a stardrop tea, im shooting way up in the heart level instantly

tiny zealot
#

birthday stardrop tea is worth like 3.5 hearts or something and you can do it repeatedly

hard fern
#

i just wanted to wall off the heart events/dialogue that you would see

uncut viper
#

even if not stardrop tea, just giving them very loved gifts can be enough to get to, say, a heart event they shouldnt be able to see

tiny zealot
#

if you want to lock out heart events, just set a mail flag and check it in the preconditions

ornate locust
#

You can surely do a condition in the event that they didn't say the bad thing

#

yeah that

hard fern
#

what if the heart event had a precondition for needing to have not seen the event that causes the friendship lock

tiny zealot
#

any precondition can be negated with !

#

so, yes, that's easy, do that

hard fern
#

that way, it would be impossible to trigger it unless you debug ebi'd it šŸ¤”

uncut viper
#

you've just given me 0.3 hearts with them

hard fern
#

SDVpufferflat i give up

uncut viper
#

its the kind of thing thats very easy with a C# mod, just unfortunately impossible afaik to plan for every scenario from a purely CP perspective

hard fern
#

but realistically the player shouldnt be lower than 2 hearts bc of the event requirement anyways.. like, you wouldnt be gaining anything if you were already at 2 hearts

uncut viper
#

you can give someone a hated gift and lower your hearts with them

hard fern
#

im still a little confused on the point you're trying to make

uncut viper
#

they can see the event at 2 hearts, get the bad flag, and then give them a hated gift

#

they are now at 1 heart or whatever and have seen the event legitimately

hard fern
#

i feel like that's pretty pointless to do though, like as a player

#

they're not benefiting from anything

uncut viper
#

i give NPCs i dislike hated gifts so i dont have to see any more of their events

hard fern
#

but the player wouldnt be seeing any more events regardless

uncut viper
#

how do they know?

hard fern
#

(hopefully by reading the documentation i write šŸ˜” )

uncut viper
#

the hated gift mightve been accidental too

ornate locust
#

AHAHAHAHAHAH

#

ahahahahahahaahaaaaaaa

#

clears throat I mean

uncut viper
#

but try not to conflate my points here. im not saying these things are likely to matter or come up. im saying you cannot perfectly accomplish this task. you have to accept imperfections. how much they matter to you is your decision

hard fern
#

even if they accidentally gave a hated gift nothing would change if everything depended on the flag šŸ¤”

uncut viper
#

i simply lay them out so you can make an informed decision

ornate locust
#

I only make documentation for the rare person who reads it and to point at when people ask questions, I no longer expect it to be read

uncut viper
ornate locust
#

people will ask an Ai before they just read your dang documentation

uncut viper
#

so if the whole "take them to 0 then add 500" depends on the flag, then anyone under 2 hearts with em gets free friendship addedo n

hard fern
#

maybe im just stupid, i can't figure out what the significance is...

drowsy pewter
#

its fine then

#

dont worry

uncut viper
#

it just means that in some circumstances your system to lock them to 2 hearts will accidentally increase their friendship with your NPC

#

not all circumstances and not common circumstances. just some rare circumstances

hard fern
#

so, then i shouldnt do it? because of that issue?

#

šŸ˜”

#

i dont know what's right

uncut viper
#

up to you, how much do you care about that issue

hard fern
#

i don't really care, but since you brought it up i assume it's something i should care about?

#

but i can't do anything to fix it

uncut viper
#

i only bring it up so you know about it, i mean no implication of how much it matters

#

the question was "can i do this?" and my answer is "not perfectly, though you can get pretty close."
pretty close is pretty good

hard fern
#

i already knew about it, but i just figured it wouldn't matter since they'll never be able to progress the relationship any further

#

so even a minimal friendship increase wouldn't impact much

uncut viper
#

then you can decide to do it anyway and it will probably never be noticed by 99% of players

#

which is good

gentle rose
#

out of curiosity, is it possible in vanilla via content patcher to make an NPC not gain friendship from conversation?

uncut viper
#

no

gentle rose
#

:(

#

is there a dialogue command to lower friendship? SDVpufferthinkblob

uncut viper
#

theres just a trigger action action

#

you dont know how much friendship an NPC got from talking

gentle rose
#

you don't?

#

I thought it was fixed

uncut viper
#

what if a mod changes it, or adds a buff like the statue of blessings

gentle rose
#

true

uncut viper
#

and you'd need to add it to every single dialogue

gentle rose
#

does betas have an on friendship change trigger--

uncut viper
#

BETAS aint exactly vanilla CP

gentle rose
#

I have given up on the vanilla part

uncut viper
#

it has a DialogueOpened trigger

#

but thats not specific to conversation

gentle rose
#

hmm, no I was thinking of specifically on friendship changed SDVpufferthinkblob

uncut viper
#

there isnt, because atra never told me how to get the NPC name from the netfriendship object

#

i can detect a friendship change, i cant detect who its for

#

and it wouldnt tell you why the friendship changed

#

(you = the CP author that is)

tiny zealot
#

guess we should summon atra then.
ahem the pathfinder is cursed

gentle rose
#

could probably betas harmony it... but I have yet to figure out the target audience of betas harmony kbf_run

uncut viper
#

(or i guess also the C# author)

next plaza
next plaza
uncut viper
#

locking max friendship seems like the kind of thing that should be set in characterdata and not through token mess

next plaza
#

I mean, yes

#

And it's something I've considered before as well

uncut viper
#

so you cant detect what NPC it is

gentle rose
#

sadness

uncut viper
#

BETAS has a traction to just set the friendship with an NPC, rather than add or remove, but it cant stop someone from temporarily gaining hearts

#

but you could do it every time dialogue is closed with that NPC, which is pretty quick

gentle rose
#

you could do part of the job by moving every item and context tag whose existence you're aware of and that they like/love to neutral

but that won't deal with items you aren't aware of or with dialogue SDVpufferthinkblob

#

I can't remember if stardrop tea is hardcoded either

uncut viper
#

very much

tiny zealot
#

it's super hardcoded

gentle rose
#

makes sense

uncut viper
#

well for now

#

idr if its changed in 1.6.16

next plaza
#

When are we getting CP 2.0 3.0 that lets us run functions and loops on the data šŸ˜”

gentle rose
#

have an event in every location triggered at 3 hearts that silently docks one heart, followed by a trigger action that marks it as unseen

uncut viper
#

what if im at 3.1 hearts?

gentle rose
#

I'm assuming the exact value matters less than keeping it at roughly two hearts

next plaza
#

Add a precondition for friendship above 3 hearts, use betas to set friendship to 2

uncut viper
#

well now we're making some wild assumptions

gentle rose
#

or what Casey said

next plaza
uncut viper
#

like i said before, we can already get pretty damn close

#

but nothing will be a perfect solution

tiny zealot
uncut viper
#

bc theres just simply no way to set a cap on friendship other than 8 or 10 or 14

#

that sounds familiar to me

#

it would be ridiculously easy to implement in C# but then you have to contend with the fact that people arent likely to want to adopt a dependency solely for that

next plaza
#

It's definitely something I've considered in the past - alongside higher caps - but I never got around to it since I didn't need it and nobody else asked

#

Was contemplating for MMR

gentle rose
uncut viper
#

"pls functionality? no dependency! only functionality!"

gentle rose
#

idk if it even will get clipped to ten

uncut viper
#

i dont know if it actually clips it if you just straight up add it via the traction

#

seems like it does

gentle rose
#

that's a ridiculous but technically viable solution then SBVLmaoDog

uncut viper
#

but thats still not capping it

next plaza
gentle rose
#

sure it is

if you're over 2 you end up at 2, if you're under you end up where you started

uncut viper
#

because at the very least until the next 10 minute update, i will have some amount of hearts with them

#

it isnt. its reducing my friendship after i already exceeded 2

next plaza
#

The biggest reason to do it as an actual C# thing though instead of CP hackery

#

Is the UI

#

"why can't I ever get above 2 hearts with this NPC"

#

(they won't read, you can't rely on that on your mod page)

uncut viper
#

yeah you'd want locks on the hearts or something

next plaza
#

Or just grey them out like datables before dating

gentle rose
#

anyway none of what I'm saying is actually a good idea

next plaza
#

Or just not show those hearts if it was something more along the lines of "this person can never go above 2 regardless of what happens"

uncut viper
#

but thats still not capping it, thats still just reducing it after it happened

next plaza
#

Okay, but

#

What's the difference?

#

Nothing in game reacts at the moment friendship is changed, I think?

#

I mean, sure, mod nonsense

uncut viper
#

nothing vanilla, no

gentle rose
#

ig recipe unlocks might?

next plaza
#

But if you're doing hackery, you gotta expect mod compat issues at least a little

next plaza
uncut viper
#

but time can still pass while you're in the dialogue

#

things can happen

tiny zealot
#

if going above a certain hearts unlocks one of the friendship achievements i think that's instant

uncut viper
#

thats also true

next plaza
#

Ah, true

tiny zealot
#

and if that's your first achievement then it opens hat mouse

uncut viper
#

that happens as a direct result of the changeFriendship method

gentle rose
next plaza
#

Sounds like a job for content patcher harmony patches

uncut viper
#

also, it can trigger the mail for teaching you about the bouquet or amulet

next plaza
gentle rose
#

there's a question mark!

uncut viper
#

(also, i feel like people are still not quite getting my "im not saying its not good enough, im saying its not perfect"...)

next plaza
#

I'm going to intentionally be up at 3 AM. For reasons the people in the current conversation are definitely unaware of, I'm sure

gentle rose
next plaza
tiny zealot
gentle rose
#

it's fun to try to figure out what ridiculous crimes you may be able to commit to technically achieve the goal

uncut viper
#

unfortunately content patcher harmony patches would need an actual feature update to make this work but

#

its really hard to tell myself that putting actual effort into that is a good use of my time

next plaza
next plaza
gentle rose
#

can you remove all their dialogue and give it to a fake NPC and then use betas to get that NPC's dialogue instead of theirs every time you interact with them--

uncut viper
next plaza
#

#hashtag-BringBackActionCode

uncut viper
next plaza
#

(Things like "GMCM 2.0" and "clean up spacecore for 1.7" also count)

tiny zealot
#

thinking about event timecube (my vaporware event crimes mod) again

uncut viper
#

it doesnt help that one of those backburner projects would kind of make BETAS Harmony irrelevant

#

or any update to it, at least

next plaza
next plaza
uncut viper
#

have you checked that you cant?

uncut viper
#

i havent talked about it!

next plaza
uncut viper
#

its too young in the planning stage for me to want to either

next plaza
#

Fair

#

If I could pick any non-supernatural superpower, I might have to pick "being able to control my hyperfocus"

#

(okay, yes, that's more supernatural than flight and superspeed and invincibility. but I'm just saying)

tiny zealot
next plaza
uncut viper
#

is it event replaying without side effects or something

#

airgapped events

next plaza
#

Oh, I had a mod prototype for that back in Farmhand days

tiny zealot
#

that is one of its many putative features!

next plaza
#

.define putative

patent lanceBOT
#

adjective: commonly accepted or supposed

gentle rose
#

actually, what if you replace the NPC with a fake one entirely that's hidden from the social menu. trigger action after conversation that sets both npcs' friendship to the minimum of the two's, meaning that the original NPC and anything associated with it truly won't ever exceed 2.

you still have the issue with the fake possibly triggering achievements though SDVpufferthinkblob

and you can't really dynamically copy the dialogue from the real NPC to the fake without c#, you can only copy a static version of what you think the dialogue is assuming nobody changed it

anyway bye CB_wave_boy

uncut viper
#

im glad casey asked for the definition bc i also didnt know it

next plaza
#

inb4 "it's a perfectly cromulent word"

tiny zealot
#

i do like to say that

uncut viper
next plaza
#

...I just noticed both of you are here at once

#

sends my brain to intensive training bootcamp

gentle rose
uncut viper
#

... the ones in 1.7?

gentle rose
#

hmm. it was a terrible idea regardless

gentle rose
next plaza
#

I literally thought it was just me button and iro this whole time

uncut viper
#

there are no maths query tokens

next plaza
#

I think iro means the CP token

#

Not the tokenizable string token

tiny zealot
uncut viper
#

well you cant get live friendship data into those

#

so i was simply being a good friend in assuming iro couldnt possibly have meant those...

#

cough

next plaza
uncut viper
#

yeah thats BETAS

#

lmao

next plaza
#

If we're talking crimes... why not

gentle rose
uncut viper
#

i dont know how thatd work in medias res though

#

in the middle of the dialogue boix in question

#

in other words iro, feel free to make a proof of concept

#

i look forward to it

#

also there is no Math.min in {{Query}}

gentle rose
next plaza
#

My brain when these two are talking in the same conversation

uncut viper
#

looks at smudged writing on hand

next plaza
#

(and of course wren sometimes. though that's even more baffling to be honest)

uncut viper
#

if it makes you feel any better i dont confuse iro and ichor but i do confuse wren and tia

gentle rose
#

wren? why are our names confusing with wren?

uncut viper
#

i did used to confuse wren with ichor

next plaza
#

Good question

uncut viper
#

but that was a while ago

next plaza
#

Wish my brain would be reasonable

uncut viper
#

i do kinda see caseys point though even though i can tell you apart y'all three/four just kinda have like

#

a distinct shade of metaphorical orange in my mind

#

and its all the same metaphorical orange off shade

gentle rose
#

blame modded farmers. I was going to use a different name but they said it looked too much like the word anchovies

uncut viper
#

so you're all vaguely similarly associated

next plaza
#

Me: "I get ichortower and irocendar confused sometimes..."
Average person: "yeah I guess their names are kinda similar"
Me: "and tlitookilakin as well"
Average person: "wtf"

uncut viper
#

yeah i was talking about my weird brain associations there

gentle rose
#

I figured you confused Tia and wren because of the NPC SDVpuffersquee

drowsy pewter
#

sometimes people just have similar vibes

uncut viper
#

the NPC is not the reason bc i didnt know tia made wren

#

til just now

next plaza
# uncut viper a distinct shade of metaphorical orange in my mind

This is another problem I used to have, when pa bunch of people using the same color name are the only ones talking.

Like, it sounds silly, but multiple name colors genuinely feels like an accessibility thing to me. (Especially in games like MC that have all-white-username-and-message chat by default)

uncut viper
#

(sorry tia nothing personal i promise i just have not done a playthru since wren released yet SDVpufferpensive)

#

im doing you a service by never becoming a mod author

next plaza
drowsy pewter
next plaza
#

tiakall is probably more strongly confused with wren though, compared to iro/ichor being with each other

gentle rose
#

the vibes thing is just funny to me because tia doesn't do c# SDVpuffersquee

uncut viper
#

it was a nice part of the halloween contest last year where everyone could choose from four whole new colours

next plaza
#

Wait, who is the extra professions mod author?

gentle rose
#

and I only do content packs for crime reasons

next plaza
#

The one that adds the skill tree type thing

tiny zealot
#

vpp is kedi

gentle rose
#

kedi?

uncut viper
#

casey, are you perhaps confusing that with wren's machine upgrade system?

next plaza
uncut viper
#

hello chu

lucid iron
#

do u show pfp in chat casey blobcatgooglyblep

tiny zealot
#

wren also made profession books, if anyone needed more confusion

lucid iron
#

herro buttons

uncut viper
#

chu im sure you were wondering but you're in a league of ur own when it comes to my mind associations

next plaza
uncut viper
drowsy pewter
#

I dont use pfps because it gets rather clogged having modding discussions

next plaza
gentle rose
next plaza
#

To some extent still am as far as what mods you make.

uncut viper
#

id say that ones wild to me but i think its natural for the confusee to be surprised at being a confusee

next plaza
#

To be honest I'm just bad with names in general

gentle rose
#

there was at least a month where I didn't realise atra and elizabeth were separate mathpeople

next plaza
#

Role color helps a lot

uncut viper
#

iro how do you feel about the fact that the main reason you're a Separate Entity to me is because you imprinted early on in my mind from having a very laggy map mod issue that needed fixing

next plaza
#

When people retire their cheeto, it throws me off a lot

#

Plus times like when blueberry retired from being a junimo

gentle rose
tiny zealot
#

i like having the pfps in order to avoid this exact problem (confusing people), but then i have to leave the ui mode on default (big pictures), both to see the pictures and to reduce the clutter of seeing the pfp/name combo on every message if they post back-to-back

next plaza
uncut viper
next plaza
#

While we're talking about name confusion

uncut viper
#

whereas if i grab wren or tia, the other one comes along for the ride in that access and gets added to the cache

next plaza
#

It was quite a while until the average discord modder caught on to my name change šŸ˜…

#

I mean even a day or two ago someone asked if I was spacechase0. But that's understandable, since it's people coming from nexus.

I mainly mean it took a while even for regulars

gentle rose
#

it has been fixed, btw. now the mod is bad for totally different reasons

-# there may or may not already be a half ready completely rewritten v2

uncut viper
#

v2!

next plaza
#

(Keep in mind I didn't have a fancy red name then)

vernal crest
lucid iron
next plaza
uncut viper
#

you're doing wonders for my L1 cache chu

gentle rose
# uncut viper v2!

featuring incredible things like "actually doing what it's supposed to be doing" and "not having nonsensical draw layers"

uncut viper
#

all draw layers is nonsense as far as im concerned

tiny zealot
#

as long as i turn the "space between message groups" down to 0px it's Fine for me (discord forgets this setting at the drop of a hat, though)

gentle rose
patent lanceBOT
next plaza
#

go away uber I already did it

uncut viper
#

i wouldnt argue it but its arguable

next plaza
#

(Not me suddenly realizing there's simultaneous ichor and iro chatter again)

#

(Yes, it leaves my brain that quickly)

uncut viper
#

the only solution is that one of either iro or ichor must relinquish their cheeto role

tiny zealot
next plaza
#

I think part of the problem is a big way I associated names earlier on in modding was with what mod you made

next plaza
#

And framework authors kinda got a lumped together category, since there weren't many

#

And now there's a bazillion frameworks

#

By the way what's the map lag incident

uncut viper
#

i am very bad at remembering what mods people have made a lot of the time so i cannot relate

next plaza
#

Was it another thing I was in a depression coma for

lucid iron
#

hey i make things that arent frameworks sometimes

gentle rose
#

I may or may not have parsed every single event in the game every single tick when the map was open

next plaza
tiny zealot
uncut viper
#

to be fair, i never remember that pixelsmith and blacksmith are roles at all

next plaza
#

"much smaller" being "everything modded on the server - chatter, troubleshooting, development - in one channel, before there were threads. also before #program- #programmers-off-topic "

next plaza
#

Pretty sure I've done worse at some point

#

In SpaceCore

#

Can't recall what for

#

(Back when JA was basically required for custom items, too)

tiny zealot
next plaza
#

(And remember, JA requires spacecore)

gentle rose
#

also for some reason it didn't really affect my potato, which makes me think it only really made a difference for people who had a million events

next plaza
#

Oh here we go

#

It was the feature I wrote for JA

uncut viper
next plaza
#

ie. the "people are adding way too many items on one install are you people crazy" feature

uncut viper
#

which was the crux of the issue

gentle rose
#

oh right SBVLmaoDog

uncut viper
#

map opened with hotkey = works as intended
map opened via the GameMenu tab = horribly laggy bc it didnt trigger MenuChanged

gentle rose
#

maybe people should just use the hotkey then 😌

next plaza
gentle rose
#

my mod is incompatible with the behaviour of opening the map not through the hotkey

uncut viper
#

im trying to imagine the irocendar of a year ago to imagine how confident theyd feel saying that back then versus now

next plaza
#

(Yes, fruit trees was the first thing that needed tilesheet extensions, if I remember right)

next plaza
gentle rose
next plaza
#

Say something with enough anxiety and it'll come across as confidence

gentle rose
#

well some things have changed. I could stand up for an hour without nearly fainting a year ago

gentle rose
next plaza
#

Is it modded android SDV

next plaza
#

So, fun modding history fact:

JA got unlimited fruit tree / crop support (ie. the pretend-a-tilesheet-can-be-larger-than-4096-pixels hack) with the update for SDV 1.4, in november 2019. At the time I thought "objects are so small and BCs are also small and much rarer to make, surely they won't need extending"

July 2020, I had to extend springobjects (and the hats tilesheets). September 2020, I had to extend big craftables too.

Yes, people added so many objects/BCs that their vanilla tilesheets got full

#

(Although I guess to be fair, I did start a fair bit after vanilla IDs started, because I didn't want to deal with vanilla adding items and suddenly needing to manage that sort of backwards compatibility)

#

(BCs started at 300, objects started at 2000 but later moved to 3000 because of fish tanks apparently)

#

...I should sleep

#

to prepare

#

for KAR-nage

gentle rose
#

technically in a physical sense my time zone is based in the UK

next plaza
next plaza
next plaza
#

Anyways, off to prepare

#

(not sleep, this is serious business)

fervent horizon
#

what is the patch debug command again?

#

I know I saw it yesterday but I cannot find it

#

nevermind figured it out

quick sand
#

it seems way to fast given the numbers

tight rivet
#

Hm.

narrow owl
#

what is target without path?

#

is it filename?

tender bloom
#

It’s whatever you wrote under Target

oblique meadow
#

It’s basically saying ā€œfind this folder, we won’t tell you how to get thereā€

tender bloom
#

But without the path

#

candy, MagmaSprite, etc in this case

devout otter
#

Like on the bottom. The {{Target}} is Maps/PIF/{{ModId}}_ArenaT0, so {{TargetWithoutPath}} is {{ModId}}_ArenaT0.