#making-mods-general

1 messages · Page 326 of 1

rough lintel
#

water source for the paddy crop

#

thats what i mean

lucid iron
#

thats why it is specialized

twin wadi
#

how many dialogue lines should i have for a romanceable npc? im having 2-3 lines for each heart lvl + day of the week randomized and wondering if im doing overboard

rough lintel
#

like you can plant paddy crops. on it. and it acts like... theres water

lucid iron
#

i might be caught up in pendatry again tbh

rough lintel
#

🤣

#

i plant rice, it waters itself, yes?

lucid iron
#

but the actual patch here is just make hoedirt on this tile paddy if paddy crop

brittle pasture
#

very niche question incoming: how to listen for "chest inventory changed by mp syncing"

lucid iron
#

net field?

#

like u dont want it to run on the host but u do want to run it on other ppl somehow?

twin wadi
# vernal crest However many you want.

im just wondering how much is necessary for dialogue to be natural enough? my dialogue is mostly pretty specific so im worried that it might get repetitive

vernal crest
brittle pasture
#

so context is that

  1. player one plants crops in aquaponics chest and dumps a bunch of IndoorPots into the building chest
  2. player two gets the IndoorPots, however the IndoorPot's Location field is not set because it's not synced (usually it's set by it being physically added to a location)
rough lintel
#

but what i did, is i did NOT do specific seasonal lines, and did the following

#

Mon key will have like 3 generic lines, then one specific seasonal one for each season (excluding spring)

#

six lines per key, and there's 7 day keys per heart level, thats 42 for each heart level

lucid iron
#

its not too late to go back to map based crop storage is it

rough lintel
#

and then youve got 2, 4, 6, 8, 10 hearts

brittle pasture
#

yes it is
something something I'm too far gone to stop

lucid iron
#

i dont think that would help mind u

rough lintel
fierce vault
#

Whew, I successfully added it.

lucid iron
#

but yea i cant rly think of anything besides netfield bullshit LilyDerp

rough lintel
#

you do not need to because that is overkill compared to any vanilla npc

#

thats just what i did for my npc

#

thats not even including specific day lines, schedule dialogue, festival dialogue... brrrrrrr

twin wadi
brittle pasture
#

yeah, my question is which netfield event to listen to (still a noob)

rough lintel
#

yeah i'd aim for getting 1 for each generic day key and then expanding from there, sugar

lucid iron
#

heres my piece of overengineered bullshit that atra enticed me into making

twin wadi
#

thanks for the help, i wasn't sure where to start and how specific i should get

rough lintel
#

so 42 lines minimum. dont bother doing specific seasonal lines yet, just be generic

#

so no spring_Mon or anything 🤣 just do Mon

lucid iron
#

it watches the building chest to update light states

rough lintel
#

you can do seasonal garbo later 🫡 i believe in u

twin wadi
#

thank youuu ❤️

brittle pasture
#

OnSlotChanged? weird, I tried that but for some reason it only fires when the planter dumps the pots into the chest, not when the other player gets them from syncing

lucid iron
#

hm i dunno maybe this is just broken in multiplayer kyuuchan_run

#

i have not tested it in several months

#

the watcher being lazy and disposable might make diff but u need the location a lot earlier right

#

another approach is to always do everything on host by writing a smol multiplayer message thing

brittle pasture
#

yeah that's my next plan

calm nebula
#

Real talk selph

#

Why not just put the pots on the farm map

brittle pasture
#

look if I just fix this one thing then the mod will be complete and I don't have to touch it ever again

lucid iron
#

cant believe map based storage is looking more attractive every day

#

i swear i was genuinely joking the first time it was brought up

brittle pasture
#

during development I thought about putting it in negative coords but thought to myself, bleh, if I do the chest thing I only need to sync location/tile in a couple places

lucid mulch
#

a bunch of 1.5 mods did negative coord chests

brittle pasture
#

yeah, horse overhaul still does

#

for the horse chest

#

it is decided, I'll fix this one issue, but if I get another MP sync report I'm switching to negative coords and bump version to 2.0.0

#

"what new features are in 2.0.0" "nothing, but it's a breaking change"

lucid mulch
#

plz have good multiplayer support or I'll be upset

rough lintel
#

where is the sprite for the special dirt for paddy crops

#

i dont see it in crops.png so its.... ?? hiding

lucid mulch
#

if in doubt, cursors

rough lintel
#

cursors or cursors2 in this instance 🤔

#

ok its not in any cursors

#

hm hm hmm

#

its not... hoedirt, is it?

#

that cant be right

#

omg it is.

#

brother

rigid musk
#

pondering is there currently a way to harvest a plant at multiple stages? I feel like not

lucid iron
#

what does that mean NotteThink

rigid musk
# lucid iron what does that mean <:NotteThink:631366969047908352>

So for example, some plants irl you can harvest a bit early for it to be a bit different (take bell peppers for example) so if you harvested them early, you would get a different type of papper ... technically.
i.e. the growing time of the crop is, say, 5 days, and you CAN harvest it at 5 days, but then if you really wanted to you could leave it in the ground for longer for a (hypothetically) more profitable and different crop

lucid iron
#

i cant think of a crop that does it but i guess you can use custom bush for it?

drowsy pewter
#

i think

#

but it might not work exactly like you are thinking of

#

spacecore's multiyield feature allows you to set various conditions on harvests as well as set the plant at specific stages after harvesting

fossil osprey
#

Iirc someone was trying to do such things a while back (was it with a berry type of crops?), maybe you could try to find back that bit of conversation and see if they found a solution?

rough lintel
#

bc its ripe i guess. no clue how it worked

brittle pasture
#

(fwiw I didn't spend the last 3 hours on it, I decided to play games instead and made the decision while playing)

woeful lintel
#

pretty funny seeing this message posted by an orange name. Welcome to the club!

hallow igloo
#

I'm so confused

#

a user has notified me that my custom minecarts aren't working

#

and the log shows the patches aren't applied because of a missing flag

#

but it also shows that they DO HAVE the needed flags

ocean sailBOT
#

Log Info: SMAPI 4.2.1 with SDV 1.6.15 build 24356 on Unix 6.14.7.2, with 204 C# mods and 338 content packs.
Suggested fixes: One or more mods are out of date, consider updating them

lucid mulch
#

Oh updating the schedule debugger to 1.6 was replacing an Add with TryAdd and location.GetCharacters() with location.characters

#

this is such a busy tile

#

the tiles to the left were even busier that made the lines so small they became <1 pixel and stopped rendering, so >64 routes tried going on the tile

gentle rose
#

wait that’s so useful

#

is there a way to do a full year version?

#

(I believe the wiki wanted to make an image of all the “safe” tiles in town back in 1.5 and resorted to just covering the whole town with rotted plants and letting the game run for a year lmao)

orchid glade
#

Do I increase versioning number if the only change I'm making is adding the update key?

whole raptor
#

Either way is fine I guess, since the game won't notify the users anyway

orchid glade
#

Yeah. I just wish I had realised, when I made my first mod, that you could get the nexus number before publishing the mod.

inner harbor
#

I dont do all of 2-6 hearts. Actually i just have a template made from Abigail's with all the dialogue removed.

whole raptor
crude plank
lucid mulch
# gentle rose is there a way to do a full year version?

The code doesn't simulate any schedule logic, it just visualizes what the pathfinder(s) have chosen, so doing the full year (or n years because desert festival needing bus) would be to just sleep every day, run it again and continue

crude plank
#

is there any way to make it mark somehow places where NPCs stop and spend some time?

#

ah, your answer to iro answers that then

lucid mulch
#

it does its just not well visualised

crude plank
#

oh, can you make it be visualised then?

#

it would be really useful to know that for map patches

lucid mulch
#

the lighter line stops, and then the darker one starts

#

every time the next section of the schedule begins it gets darker, which works fine in quieter maps, but town is just too busy for the colour pallete to work well

crude plank
#

@unique sigil is working on something and asked me if i could make a list of spots where NPCs spend time on on maps, and this would be really useful for that

#

is there a working version of this anywhere atm?

unique sigil
#

yep, though i'm more looking for spots NPCs occupy when stopping during schedules, so I don't accidentally put a tile on the Buildings layer where they're standing (not necessarily the paths they take when going through their schedules).

crude plank
#

the change of color is exactly that kisaa

lucid mulch
#

also this code is like 3 years old, last change was 19/06/2022 until today reviving it for 1.6

unique sigil
#

oh i see, i couldn't tell by looking at the image. maybe something like a square outline around the tile would make it easier to parse? but anyways, that would be a great tool SDVpufferheart

lucid mulch
#

this is all a 1x1 pixel texture that I'm drawing with, so was limited in what I did

crude plank
#

this is still extremely useful can't wait to try it

lucid mulch
#

Also now that stardewui is a thing, I could give it a proper hud to control what is shown

gentle rose
calm nebula
#

Most seems fine though

lucid mulch
#

well npc's aint walking true diagonal

opaque field
#

question: if I wanted to make a trinket that increases your chances of hatching a blue chicken - is that better off being content patcher or C#?

opaque field
#

Oh my lort. beautiful. ty!

#

Also, a way to implement notes before unlocking secret notes? The goal is to have like 6-8 little letters get found and as you find certain numbers of them they trigger events and stuff

tropic thorn
#

Hi, I have another noob question: is it possible to set an NPC's position at half of a tile? I am trying to make an NPC sleep in a bed (2 tiles wide) and it always looks weird whichever coordinates I set.

left nova
woeful lintel
little hearth
#

does anyone have any advice to ensure i dont accidentally place my npcs house into where another (modded) npcs/building structure may Hypothetically be tears ive triple checked several mods but i just dont want to be a bother

#

im aware that its getting a full on the map though so maybe i should think of some alternatives (scratches head)

woeful lintel
#

According to the usual advice about this, you'll be fine if you checked for the most popular mods

little hearth
#

thank you so much!

tribal ore
#

Is it possible to add a tilesheet to a map with a cp patch?

little hearth
#

i've checked a bunch of the popular ones and done a bit of digging! its also relatively small tileswise. if it conflicts with anyones game i will cross that bridge if i get there

woeful lintel
#

there's no way to know for sure that you will not have compat issues, because there are basically infinite mods with finite space on the map

little hearth
#

catnodlove thanks!! its my first time using tiled actually so im definitely learning as i go. i appreciate it ‼️

tribal ore
woeful lintel
little hearth
#

yes, that would be lovely! sounds great ‼️

tribal ore
#

Details: I'm trying to add a tile to Elliott's House under certain conditions

#

[Content Patcher] Can't apply map patch "Older Sebastian > EditMap Maps/ElliottHouse" to Maps/ElliottHouse: MapTiles > entry 1 couldn't be applied: SetTilesheet specifies a 'Maps\townInterior' tilesheet which doesn't exist.

#
    "Action": "EditMap",
    "Target": "Maps/ElliottHouse",
    "MapTiles": [
        {
            "Position": { "X": 7, "Y": 7 },
            "Layer": "AlwaysFront",
            "SetTilesheet": "Maps\\townInterior",
            "SetIndex": "1108",
        },
    ],
    "When": {
        "Relationship:Sebastian |contains=Married": false,
        "DayOfWeek": "Saturday",
        "Weather": "rain, storm",
    }
},
#

I know for sure that townInterior exists. But looking in tiled, it's not included in the tmx

#

So I think I have to add it to the map

#

I was wondering if that might be a map property change, but that doesn't sound right

dusk terrace
#

working great! SDVpufferheart didn't realize I wouldn't need spacecore either now if only there was a way to animate it with a pulsating effect...

I did notice a slight issue though: light condition seems to stick around after removing the path and overrides other paths placed there. for example, green floor always glows but yellow path only glows at night, so after placing yellow down, green no longer glows on that tile during the day https://i.imgur.com/W3gwuuJ.gif

tribal ore
#

Alternative question: is it possible to make a tilesheet bigger with EditImage?

lucid mulch
#

Debugger Development Discussion

lucid iron
dusk terrace
#

sure thing, expect incoming dm

lucid iron
#

just send me json link here

dusk terrace
#

ah woops, already sent

lucid iron
#

ur json looks as expected so this is my bug

tribal ore
lucid iron
#

did you patch reload at any point?

tropic thorn
ivory plume
tribal ore
#

Used those a couple of times before, but I was trying to avoid creating a new version of the map again

dusk terrace
ivory plume
# woeful lintel there's no way to know for sure that you will not have compat issues, because th...

(I wonder if there'd be interest in a framework mod which adds a little multiplex building to different locations (accounting for existing mod positions), where mods can house any number of NPC? So you'd click the buzzer, get a menu of NPCs who live there, and they can either talk to you through the buzzer or warp you to their home depending on conditions like your friendship level or whether they're home.)

tropic thorn
#

Another noob question, I am trying to use vanilla arts that's already in the base SDV game to build my custom location map by using these lines in my myLocation.tmx file (I looked at other mods)

 <tileset firstgid="1" name="town" tilewidth="16" tileheight="16" tilecount="2304" columns="32">
  <image source="spring_town.png" width="512" height="1152"/>
 </tileset>

But this seems to work only for *.xnb files in Contents/Maps/, what should I do if I want to use game arts in say like Contents/TileSheets/?

lucid mulch
#

So SinZational Shared Spaces but for NPC's and not the farm

uncut viper
#

secret third option: wait for Pathos to absorb ATA into SMAPI

#

(/j)

ivory plume
# lucid mulch

Something like that (though with more features to support conditional NPC logic, like maybe you get a voice message if they're out).

Also similar to the old Elevator mod, which was a similar idea for farmhands.

tropic thorn
uncut viper
#

ideally yeah

lucid mulch
#

At a glance its similar, but technically very different.
Elevator had cabin buildings off-screen, Shared Spaces does not have cabin buildings at all and do the hellish harmony patches with netcode to get the dynamic cabin locations to work without the building

vernal crest
lucid mulch
#

the apartment is one giant building with multiple floors with rooms, Pathos's thing is a singular outside door that conditionally warps to different locations based on the dialog answer

ivory plume
lucid mulch
#

apartment mod is a spiritual successor to the older boarding room mod

woeful lintel
#

I kinda want to make that, but I'd only be able to do half the job

vernal crest
#

I think if it started getting crowded it would definitely make sense to start considering TARDISifying it but so far a lot of people still want to find a way to have their own house squashed in somewhere lol (which I am guilty of haha)

calm nebula
#

Stardew: a small town with fifteen skyscrapers of npcs

lucid iron
#

i think it'd work like

#

a funny npc pathable building

calm nebula
#

(I think it's a great idea)

#

I'm just Amused TM.

lucid iron
#

and instanced floor locations

calm nebula
#

Anywas

lucid iron
#

modder supplied map patches to decorate their room

calm nebula
#

I have 2 hrs more to work on this sock

lucid iron
#

that sorta stuff

lucid mulch
#

considering there are mods that have people squatting in CC, Lewis Manor, Willy's fish shop, and Pierre's shop
having the doorbell on them to warp to their locations instead of weird bigger on the inside second doors

#

getting the npcwarps to play nice would be interesting and not void warping everyone

vernal crest
#

I'm still torn on whether to make use of the existing saloon second floor mod or make my own for Hiria. I want to make my own SBVMischief but it seems silly to do that when someone made a mod for that already.

woeful lintel
#

I think I've already seen somthing like that in here, but an extra street for custom NPCs would make more sense in the context of the game than a tall housing building imo

lucid iron
#

zuzu Dokkan

woeful lintel
#

yeah

lucid iron
#

that or its magic shit

#

commute to work by riding junimos

lucid iron
nimble marlin
#

Hi folks! I was wondering if anyone knows how to make my configuration options only available to be changed on the main menu?

lucid iron
#

the usecase here is

  1. I, npc modder, makes some central station only location for my npc's house
  2. The npc needs to path to town sometimes, but i dont want to 0 schedule always or bonk anyone else's npc warp by mistake
lucid iron
#

need to use GMCM's C# api

fading walrus
ivory plume
lucid iron
#

no i think it'd be a Warp that central station pushes onto each location that contains a kiosk

ivory plume
#

That could get them to Central Station (or the NPC warp room), but what about the warps out from there?

lucid iron
#

but hm how to branch it bolbthinking

#

might be a problem too hard for the current schedule system tbh

#

a big ol warp room doesn't seem very scalable

#

at some number of stops the npcs will path funny

lucid mulch
#

I think it would be possible to have a large warp room that's 5xN that's effectively

XXXXX
WoooW
XXoXX
WoooW
XXoXX
WoooW
XXXX

Where X is collision, W is warp, o is walkable space but will have different walk timings
...

#

I think a better solution would be a new warp property that is a conditional warp from A to B if and only if the pathfinder wanted to go to B, and have the pathfinder data do the teleport rather than the collision

woeful lintel
#

is there not a way to make a warp only work for a specific NPC?

#

(I know nothing about the subject)

ivory plume
#

Not without Harmony. The usual approach would be for each NPC or mod to have their own hidden warp room or warp points, which is specifically designed for that NPC/mod's pathfinding.

nimble marlin
# lucid iron need to use GMCM's C# api

where can I learn how to make this with the GMCM's C# API? / by doing this will I be able to make even the config options I made using content patcher only available in the main menu or only the config options made with the c# api?

woeful lintel
#

only those done through C# afaIk, there's an option when registering them

lucid iron
#

so if you were going to do this with C#, you need to expose the settings to your CP by creating content patcher tokens

#

some mods that do this include DSV and WAG (Cauldron)

#

before we get into all that though, can I ask what setting you are trying to ban?

lucid mulch
#

It would be a nice QoL thing if 1.6.16 did the pathfinding change moving NPC warps from collisions to the pathfinder doing the teleports, as it would fix large NPCs and void warping in general, and would allow for tighter packing of warps without worrying that the NPC will accidentally touch the wrong warp

uncut viper
#

(my books mod also does this if you're looking for a weird reflection attributes way of registering the config tokens too /j)

ivory plume
uncut viper
#

1.6.17 tho...

lucid mulch
#

It's in that weird space where vanilla doesn't need it, but it's awkward for anyone else to fix it (outside of maybe spacecore)

nimble marlin
lucid mulch
#

Spacecore already fixes the macro pathfinder to be depth first rather than breath first to get more efficient/direct routes, but doesn't touch the micro pathfinder that just assumes the warp collision will happen.

ScheduleDebugger had to do weird logic to even properly detect it, as the data model doesn't really encode the warps happening.

And can't rely on the coords jumping=warp as it's possible to warp to the same coord but different map

nimble marlin
lucid iron
woeful lintel
#

Yeah, I think the pathfinding discussion cured me from wanting to develop the custom NPC building idea

lucid iron
#

most things u r doing in CP either

  • responds to invalidation which happens immediately on config change
  • doesn't respond to invalidation because the asset is weird, so you have to wait a day
rough lintel
#

good meowning modders 🫡 i see the discussion is fruitful today

sleek flint
#

Is it possible to use CP's When and tokens with my framework, or do I have to make my own?

woeful lintel
#

00:50 💀

lucid mulch
#

Outside of a bundle mod which has bigger problems than just titlemenu vs ingame, and to a lesser extent weather, assets invalidating midday is normal and fine

rough lintel
lucid iron
calm nebula
lucid mulch
lucid iron
#

as long as you implement AssetInvalidate properly so ur things arent stale

woeful lintel
#

Since I got started with Blue Prince, I could turn this evening into a morning, but I don't think future me will like it

sleek flint
lucid iron
#

just use GSQ

sleek flint
#

Ok then

lucid iron
#

GameStateQuery.CheckConditions(Data.Condition, context)

#

and then the CP side can put "Condition": "DAY_OF_WEEK Wednesday"

#

you can do what sinz mentioned, using the condition api

#

but i personally havent found a point of doing that vs just expose GSQ and handle it

sleek flint
#

I will just recreate the things I want it's not hard, I just wanted to confirm because it would have saved time if I were able to just use CP.

lucid iron
#

with this u can also do things like

uncut viper
# lucid mulch Spacecore already fixes the macro pathfinder to be depth first rather than breat...

(not to mention the fact that even with the minor changes spacecore already does to it, it already leads to different pathfinding results in some cases for NPCs between it installed and it not installed. cant imagine the mod author headache if they start getting bug reports about schedules being weird bc they didnt test every schedule both with and without spacecore after implementing this change)

lucid iron
#

lock a channel behind a mail flag

#

put it behind some chance

#

whatever funny custom GSQ other mods make

lucid mulch
#

Now, less so

sleek flint
#

Thanks chu

calm nebula
#

tbh it would be more useful imo to be able to execute cp tokens in the context of a cp mod

#

otherwise, meh

royal stump
#

yeah, if you can implement a GSQ field in a CP-based framework, it pretty much inherently gives access to anything the condition API does
(FTM's API use just predates it, etc) (though ig it's also not CP-based, so that's the use case SDVkrobusgiggle)

lucid mulch
#

There was also the cursed attempts of using event precondition logic to gate things

lucid iron
#

the ur-GSQ...

lucid iron
lucid mulch
#

And if it's the c# side wanting the conditional edit, just wrap it in an if statement with the logic you wanted

lucid iron
#

assuming you mean something like

  1. there's a When day of week wednesday edit on the custom asset
  2. you slept (so that cp did new edit on day update)
  3. your custom asset implements AssetInvalidated handling
royal stump
lucid iron
#

point 2 is also a point in GSQ favor, it doesn't need to wait for CP update rate

lucid mulch
#

I think shop tile framework also liked using the precondition system as a pre-gsq

calm nebula
#

(both of those were cherry)

royal stump
#

oh, Pathos is maintaining EPU now, so I guess it is still there for a reason SDVkrobusgiggle and yeah, it got a lot of use back in 1.4 or so

lucid mulch
#

Needs to still work for the handful of mods still using stf

lucid iron
#

i am always so curious about the olden days of modding

calm nebula
#

same, chue

uncut viper
#

im not. i live in blissful ignorance

lucid iron
#

1.0 to 1.4 is complete mystery to me

calm nebula
#

same, chue

lucid iron
#

1.5 i only have vaguest ideas about

calm nebula
#

I showed up in the waning era for 1.5.4

lucid mulch
#

Even like 1.5.0-1.5.4 is a mystery for me

calm nebula
#

and then 1.5.6 happened

#

annnnyways

#

I see Pathos is rewriting the scheduler ❤️

#

yay!

idle lantern
#

Is there a way to hide an npc's shadow?

lucid mulch
#

I was a Normie user when the rumours of manually messing with the windows install to use monogame instead of xna to be 64bit or something

calm nebula
#

I wasn't even a user in that era, I think

royal stump
uncut viper
#

the first time i did anything modding related was just as a user too and that was back pre-official multiplayer when my partner and i had to use the mod for it

#

that was also about the extent of the modding i did back then

calm nebula
#

I'm pretty sure I didn't know the game existed until, like, 2020

lucid iron
#

my friend wanted to coop with me

#

and then i started solo save cus friend too busy to play 8hr a day to build the Empire

calm nebula
#

twitches

#

now will they TELL ME if they accepted my qualifier sock

#

gahhh I hate interaction with people

lucid mulch
#

I think my only solo save is still in like summer y1

calm nebula
#

[present company excluded]

uncut viper
#

(meanwhile ive still never played more than 1 day of solo play bc i cannot stand playing games like this alone)

royal stump
#

I think I played the game solo a bit in like v1.2? hard to remember at this point
(then did some coop in 1.3 and needed a custom quarry to work -> ??? -> now)

lucid mulch
#

While I have 4-6 perfection saves in multiplayer ranging from vanilla to heavily modded

lucid iron
#

how will u build the Keg Empire then

royal stump
#

come to think of it, I've never played the game properly long enough to get to winter SDVjunimowhite

uncut viper
lucid mulch
#

Scheduling it ahead of time, and ensuring you don't end the session without booking in the time for the next session

ivory plume
lucid iron
#

is just like irl olden days then

calm nebula
lucid mulch
#

I have citations in my work codebase to content patcher

calm nebula
calm nebula
#

or my favorite trick, grabbing a mostly done farm from upload.farm

lucid iron
#

debug setupkegfarm when

calm nebula
#

no u

sleek flint
#

Although I might go GSQ anyway gives me more control over things. I will leave that for future me SDVpufferclueless

lucid mulch
#

I wonder if the smart building mod thing can spawn sheds with the contents preloaded, to just spawn sheds with the optimal key layout already present

lucid iron
#

i thought u gotta SC for that

#

but hm

#

u can just use vanilla right

#

IndoorItems

#

just write idk 108 entries

lucid mulch
#

I was playing shapez2 recently which is what reminded me of that copy+paste style thing

uncut viper
#

what about my shed mod compatibility, chu

lucid iron
#

die

royal stump
#

presumably spawn in the sense of doing it as a player, like "have 999 kegs in my inventory and slap them down in the right setup"

uncut viper
#

you dont sound like a true keg emperor

royal stump
#

"blueprints" as a games/mods seem to call them, though I haven't used them much in anything SDVkrobusgiggle

calm nebula
lucid iron
#

hey some automate mods require path for the junimos

calm nebula
#

ngl, chue

#

I kinda stopped paying attention in like 2023

#

what mods exist now? I don't know

lucid mulch
#

All my saves with automate have had house rules that every machine still needs to be human accessible, along with AutomateChest to ensure hoppers have been purchased to have a time gating and cost for using automate

calm nebula
#

also have discord forums been breaking for anyone else?

#

they don't work for me on mobile no more

#

like, all content is drawn too far down

lucid mulch
#

I wanted to use the Stardio mod, but it wasn't multiplayer compatible, haven't checked in to see if it's fixed yet

royal stump
lucid iron
#

did u not updoot atra

calm nebula
#

I did not update an atra

#

I did not know an atra needed updates

#

where should I pull updates from, CVS?

uncut viper
#

commas value separated?

royal stump
#

get more fiber by splitting and eating the commas, yes

harsh bobcat
#

I love crashes because I didn't realize something could be nullable

calm nebula
#

(The game is not annotated)

uncut viper
#

when in doubt, something always might arrive null

calm nebula
#

Even if it was, nothing stops the serializer or some other modder from putting a null in a place it doesn't belong

latent mauve
#

Support forums are auto scrolling me down to the second post on posts with multiple replies even if I haven't opened them before, so I don't think it's just you, Atra!

calm nebula
harsh bobcat
#

well I looked at a function called "drawTextWithShadow" and thought it would always be passed a non-null text

#

but I was wrong

calm nebula
#

We get our updates from the pharmacy right

royal stump
#

also, digging into my old EPU history, I forgot I had to warn people use the correct mail flag condition & not the fake booby-trapped one SDVpuffersquint which is deprecated now

x <letter ID>
For the current player: mark this event as seen, add the specified letter to tomorrow's mail, then return false (so that nothing further happens). Use the format "x letterid true" to send the letter immediately.
(doing this in FTM would mess up the event and also not spawn anything ever)

uncut viper
#

that function itself even checks for null in it

calm nebula
#

Anyways

lucid mulch
#

Fun fact harmony prefixing the tmx loader to return null maps caused a lot of explosions, turns out the game assumed maps weren't nullable

calm nebula
#

What video game are you guys playing

uncut viper
#

some game you've not heard of

calm nebula
#

Got it. You're playing final fantasy the actual last one

uncut viper
royal stump
#

I spent an inappropriate amount of time with Blue Prince open last month, though not actively ~playing~ much

calm nebula
#

I'm stressing about a sock knitting competition

#

This is how you know I don't have a personality

#

Then after lunch I need to get some work work done and also some stuff I promised people two months ago lol

royal stump
#

wtt personality for some cool socks

uncut viper
harsh bobcat
#

while if your goal is just to draw the spritebatch you would just give a null string

#

presumably

uncut viper
#

well, i would say if you're handing the "drawText" function null text you've also gone pretty wrong... SDVpuffersquee

harsh bobcat
uncut viper
#

i just dunno why one is safe to make a blank string and the other just doesnt care to do so

uncut viper
harsh bobcat
#

also btw I fully decided it was easier to just only do testing on my windows vm and hook createrandom where I'm allowed to, because indeed the same mod works on my windows vm but not my mac computer yay I love inlining. still [the knowledge gained from this allows me to] I can now successfully seed uniquemultiplayeruid [in vanilla] which is excellent

lucid iron
#

does ur mod work on linux

harsh bobcat
#

I mean this is a mod specifically to be used to better understand when the game uses random calls so it's not a general purpose thing, and I have no clue

#

(because the uniquemultiplayerid is randomized based off of game1.random, and game1.random rarely gets set so I wanted to see if I could consistently control both the seed of game1.random [easy] and the quantity of random calls in [hard] at the moment it is used to make umid)

#

for use in seeded speedruns, as in version 1.6.4 geodes started using umid meaning they were, until recently, considered unseedable

calm nebula
#

it's a little sad for me b/c reworking the random of the game was one of the last mods I bothered to work on lol

#

Hi Lenne

lucid mulch
#

A lot of can of worms got opened during the 1.6 modding alpha regarding random

harsh bobcat
#

I love the linear nature of the c# seeded rng it let me make prediction spreadsheets I love my spreadsheets

latent mauve
# ivory plume Oh, I didn't realize there was already a mod for it. The difference would be tha...

I am not opposed to people building off the apartment mod, as it is a fairly simple construction and I do not know how to do C# fanciness. My mod also requires the mod authors to set up their NPCs to work with it, so something that automatically pulls NPCs could be an improvement and would definitely help with abandoned NPCs that don't have homes anymore if that's the direction you wanted to go in.

lime seal
#

I remember several years ago I looked into uploading mod releases to GitHub and learned that if you have a monorepo, all the mods need to have the same version # and there's only 1 updatekey possible for the repo. So if you wanted to have the mods on different version #s and/or with different updatekeys, you needed a repo for each.

Is that still the case, or is it possible to leverage the update subkeys to have multiple mods on 1 repo on GitHub?

(Fwiw my mods are CP and not C#)

latent mauve
#

(I had actually considered setting up the apartment elevator to do a list of NPCs that live there for floor selection but did not know how to implement it)

lucid iron
#

hmm

#

can i just put this on a google drive

uncut viper
#

why not just put it on the github repo itself

lucid iron
#

what is the level of served required here

#

well id also put my mod zips on google drive ofc

#

since i am trying to do the worst thing here \j

ivory plume
#

The update manifest itself needs to be a file that can be reached by the SMAPI update-check server. But the ModPageUrl can be anything user-accessible.

uncut viper
#

i dont think a google drive can give you a direct link to something

lucid iron
#

yea ig itd have to be something curl can fetch at least

uncut viper
#

also a google drive version sounds like itd be annoying to update anyway

lime seal
lucid iron
#

having separate repos might be nice for the releases pages to stay separate tho

blissful panther
ivory plume
#

(Note that update checks are way more efficient for CurseForge/ModDrop/Nexus though. Update checks for GitHub or custom update manifests can noticeably impact update-check performance, so update alerts for those may be delayed in future versions.)

iron ridge
blissful panther
#

I assume because less can be assumed for caching reasons because of the lack of a specific API?

proud wyvern
#

just force SMAPI's server to make a HTTP request to a server that takes ages to respond

#

depends on how the timeout is implemented, i guess

ivory plume
# iron ridge is this because custom update servers/github are usually slower or because they'...

Curseforge/ModDrop/Nexus all have a custom API which SMAPI's update-check server can use to fetch every Stardew Valley mod at once. It does that on a schedule, so when you update-check mods on those sites it can just return the result immediately from its cache without needing to call any external servers.

But for GitHub and custom update manifests, the only option is to call the remote servers one mod at a time to get each mod's current info. That currently happens while the SMAPI request is still waiting for a response, but future versions may just queue a cache update and immediately return whatever the last version was fetched for those.

iron ridge
#

ah i see

lime seal
#

I forgot about CurseForge as an option! What's the modding scene like there? We didn't include it on the modding wiki table comparing publishing sites
https://stardewmodding.wiki.gg/wiki/Differences_in_Mod_Publishing_Sites

Stardew Modding Wiki

There are a couple of different sites that are popular for publishing Stardew Valley mods on, so this page aims to document some key differences. Feel free to update it with your own findings!
You may also be interested in Updating Mods for Modders.

frosty hull
#

hello guy, how can i use command debug object position? such as tile pos

iron ridge
blissful panther
ivory plume
#

Quite possible, I don't think it's a heavily used feature.

blissful panther
#

Oh, wow. That one mod also doesn't even technically use it!

#
{
    "Name": "Moveable Mailbox",
    "Author": "aedenthorn",
    "Version": "0.2.1-official",
    "Description": "Converts the farm's mailbox into a moveable object that you can place anywhere on your farm.",
    "UniqueID": "aedenthorn.MoveableMailbox",
    "EntryDll": "MoveableMailbox.dll",
    "MinimumApiVersion": "4.0.0",
    "UpdateKeys": [
        "Nexus:7834",
        "UpdateManifest:"
    ]
}
#

It's actually a little bit sad that it's used so rarely.

ivory plume
#

(If it's actually unused, I might just remove the feature; I somewhat regret adding it since we got the custom mod site APIs, since there's so many performance and security issues with calling arbitrary endpoint URLs.)

lucid iron
lucid iron
#

Pathos what if u make a limited version of it

#

Fetches a specific json at the root of a github repo

ivory plume
iron ridge
#

oh those ones

lime seal
#

Pathos, any insights you'd like share about CurseForge? :o I saw CP is on there

lucid iron
#

It's just auto sync right

#

CurseForge has a bad rep because of the modding contest they had where someone just submitted FTM SDVpufferpensive

blissful panther
#

MEEP is technically on there, and entirely auto-synced. My thought process was if I don't, my mods are 100% uploadable there by anybody.

royal stump
#

(SDVpufferlurk not just that, but their contest was paid and the marketers actively* encourage uploading open-source stuff)
(which is why FTM technically isn't, now)

#

relatedly, I think their community manager might be banned here for all the cold DMs? it's been a while

rough lintel
#

q: are all CP mods considered open source since u can see the files/code directly?

ivory plume
# lime seal Pathos, any insights you'd like share about CurseForge? :o I saw CP is on there

Some random thoughts:

  • The site got bought by another company, which addressed many of the previous issues like a lack of moderation. They brought their own issues though (e.g. a cold mod author DM campaign which almost got them banned from the server, a focus on mod packs, and some poorly managed contests). I think they mean well and they're responsive to feedback though.
  • They have an auto-sync feature, so you can upload mod updates once to Nexus and it'll auto-upload to CurseForge (and ModDrop if you set that up too).
  • Their reward program is very good (better than Nexus' currently).
uncut viper
#

they are source available, which is not open source

iron ridge
#

source available != open source

lucid iron
ivory plume
#

Nearly all Content Patcher packs are proprietary and closed-licensed currently, which is very unfortunate.

rough lintel
hard fern
#

So u can look and peek at all the code u want, ur just not allowed to re-... Whatever the word is

#

Im not very good with code terms and stuff

latent mauve
#

Redistribute?

uncut viper
#

not allowed to do anything with them that the permissions dont tell you you can do

rough lintel
#

ooooooh

lucid iron
#

My content packs are licensed badly probably (they inherit whatever code license i put in the same repo lol)

rough lintel
#

i dont even license mine i didnt know we had to do that

blissful panther
#

I have no content pack that isn't alongside some code, so it just gets whatever that is.

#

Mostly MPL 2.0.

#

...or MIT.

latent mauve
#

I am protective of my image assets which is the only reason I set permissions, generally.

#

And even then, ask me and I will probably let you use it, depending on the use case

brittle pasture
uncut viper
iron ridge
#

though technically all rights reserved also means no usage

#

as that's a right you need to grant

lime seal
#

(I licensed my mods under GPL)

uncut viper
#

All Rights Reserved Except Those Granted As A Requirement By Nexusmods

ivory plume
#

It's fortunate that Content Patcher can auto-migrate content packs, since currently almost no content packs allow others to update them.

uncut viper
#

(or Forking if GitHub)

royal stump
#

my impression is that it's been unclear to most CP devs if/how licensing and rights apply to the json files, though people tend to have rules for the other assets

rough lintel
#

so all rights reserved means “my oc donut steel”??

lucid iron
rough lintel
#

copyright is hard to understand bros 😔

uncut viper
blissful panther
lime seal
brittle pasture
ivory plume
#

Having no license can be bad for the original author too. For example, have you ever accepted a contribution to the mod from someone else? If so, you no longer have full control over your own mod; you need the other contributors' permission to redistribute it, make changes to their contributions, etc.

uncut viper
#

i have seen a lot of licensing practices in other communities that just make me think "yeah no u cant legally do that lol"

rough lintel
blissful panther
#

Without a specific contract in place, yeah. Which I don't think anyone has ever had in the modding community. SDVkrobusgiggle

rough lintel
#

that counts as a remix right

uncut viper
rough lintel
#

oh of course yeah

uncut viper
#

to be clear they wouldnt own the content. just the translation. like they dont suddenly gain part ownership in your NPC

rough lintel
#

oh i thought that counted as a remix/contribution

uncut viper
#

but you as the rights holder reserve the right to determine who gets to translate your work and how a translation is distributed

lucid iron
#

So right now Lani sbv is not licensed by anything right

rough lintel
#

except nexus perms, no

lucid iron
#

Let's say i make LaniAsAStraw portraits for strawdew valley compat and give that to you

#

You technically need my permission to update Lani now

rough lintel
#

i figured everyone operated on the “well they made it, so its theirs”

#

😭

uncut viper
#

translations are a derivative work but not a transformative work, i believe a key difference is (disclaimer: i am not a lawyer.)

rough lintel
lucid iron
#

No issues there

uncut viper
#

chu would need your permission to do that, technically

rough lintel
#

hoooo i see

lucid iron
#

This is the ol gpl linking business i think

uncut viper
#

i think (again. not a lawyer) it depends on how much you based your work off of lanis

lucid iron
#

But no issue for you to update

rough lintel
uncut viper
#

assuming you also granted distribution rights, thats fine

#

thats you making a license

rough lintel
#

woah this is in depth (and scary)

uncut viper
#

you can then not revoke that license retroactively later

lucid iron
#

But yeah if u just had Lani licensed by something i can just contribute and agree to license

ivory plume
#

Creating a custom license is very iffy, since it's very easy to get it wrong if you're not a lawyer. It's much safer to just choose a license that covers the permissions you want to grant.

lucid iron
#

However it is true that most code licenses are too broad for the average artist

rough lintel
#

oooooh, i see. what license would fit best for my situation?

brittle pasture
#

one of the CC licenses

uncut viper
#

there is n o one size fits all

blissful panther
#

Depends what you want!

rough lintel
#

three different answers LMAO

uncut viper
#

typically though for non-software assets it is a CC license

blissful panther
#

A CC license is probably the best best for a mostly media based project, though.

uncut viper
#

one of the CC licenses

lucid iron
#

I don't really think all rights reserved is wrong answer for npc mods where you might not want me making strawdew valley compat

uncut viper
#

they are technically all three the same answer

#

"CC" is not a license

blissful panther
#

Which one is the "depends what you want" answer for that.

lucid iron
#

You should have the right to say no to such things

rough lintel
calm nebula
#

I go off to eat lunch and come back to licensing

#

Byeeeeeee

lucid iron
#

IanaL hours

brittle pasture
#

we are all lawyers on this blessed day

calm nebula
#

Anyways. You can also dual license

uncut viper
#

one thing i do think (emphasis on think) people often get wrong about json licensing and such too though is wanting complete control over anything that could ever possibly touch their mods, including someone else making a patch to their mod that doesnt include any content from them but just affects them (like, say, a TextOperations on a piece of dialogue)
i dont believe you can control that? but this is also where nexus permissions come into play bc Nexus doesnt require you strictly follow a license ofc. Nexus follows your permissions

calm nebula
#

Many of my more content mods have two - MIT and also one of the CC licenses.

rough lintel
#

mmhm

#

this is fun to think about

#

i rescind my scary statement

calm nebula
#

Chue, btw

blissful panther
#

That might be a decent start, @rough lintel.

uncut viper
#

(does it count as dual licensing if a repo has a section that is MIT and a section that is ARR? is that 1.5 licensing)

calm nebula
#

How do I know if a Chinese translation is a machine translation

brittle pasture
#

yeah nexus (for all its faults) tend to be very author-sided, so you can enforce whatevs you want and they will comply

#

(DISCLAIMER: I only started modding last year)

lucid iron
#

Make me read it

rough lintel
uncut viper
#

yeah, make chu read it

#

thats what i do

lucid iron
#

The chinese localization gang is usually like

#

mtl + human pass though

#

It's basically impossible to tell in this case, if the human pass is good

rough lintel
#

i mean makes sense

calm nebula
#

That is fair

rough lintel
#

why do many work when machine can do most work and you clean it up

calm nebula
#

The report I got was that the mtl wasn't very clear

lucid iron
#

I also see translators call ppl out for trash translations that r just MTL

rough lintel
uncut viper
#

(tbh this is why for future content mods of mine im just gonna ask that people upload their translations separately)

calm nebula
#

And given it's the bundled translation I think I'll remove it if is a bad translation

lucid iron
#

So yeah overall positive culture i think

calm nebula
#

Tbh it's less...machine translation and more bad translation

rough lintel
#

im sure there is a translator gang discord somewhere for sdv mods

blissful panther
#

There are translation uploaders on Nexus who use machine translation and automation. Finding popular mods with translations, and automating the uploads too.

Allegedly/suspectedly. SDVkrobusgiggle

lucid iron
#

They most likely didn't actually playthrough your whole mod, which is understandable

uncut viper
#

"allegedly" we found the lawyer /j

royal stump
#

I am curious if Destroyable Bushes' zh.json is readable, since it's been updated by 3 people now & it's my longest one SDVpufferdizzy

lucid iron
#

So the context is lost on them

rough lintel
lucid iron
#

I'm always up to just give ur zh.json a quick proof read though

#

Lmk if u desire it

rough lintel
#

i read through lani’s chinese translation the other day and it was so funny, bc some pieces of it got “localized” in a sense

blissful panther
rough lintel
#

and its like. hell yeah.

uncut viper
#

(my translations are split up into 5 files is that too annoying)

rough lintel
blissful panther
#

Welcome! SDVkrobusgiggle

mint eagle
#

aww i missed the license conversation

rough lintel
#

oh we can always bring it back 🤣

uncut viper
brittle pasture
rough lintel
#

i have an extremely specific licensing question in my backlog of things to ask but. ill ask later

uncut viper
#

there is a difference between i18n and l10n and its nice when it leans more towards the latter

calm nebula
#

Alright

blissful panther
#

Maybe a licensing discussion/recommendation thread wouldn't be a bad idea so Atra doesn't keep being scared off...

calm nebula
#

See y'all latter SDVpufferheart

rough lintel
uncut viper
#

(tbh i thought we did have a licensing thread)

mint eagle
#

im good at specific licensing questions! (cant give 'legal advice' because that requires credentials. but i can share my understanding, which is pretty detailed.)

calm nebula
#

You're not scaring me off, I need to have (specific code feature) done by Monday

#

And I spent this morning on a speed sock competition so you know my time management skills are bad

blissful panther
#

I almost always have license opinions to give.

rough lintel
#

because one of the dialogue lines is smth like “The sun is out but it’s freezing cold, it’s supposed to be warm” and it got localized/translated as “The sun is out but it’s freezing cold, is there a bug in the weather system?” and i laughed my ass off

#

because ok, a gamer slay, perhaps

#

i was like yknow what. hell yeah id say that in chinese

lucid iron
#

Minor nitpick is water tile got translated to a "water porcelain tile"

#

I would have picked "water grid cell"

rough lintel
#

i wouldnt say thats a minor nitpick lmao

#

seems pretty major for clarification reasons

lucid iron
#

It is minor bc the map tiles are usually called map shingles in chinese lol

#

瓦片

rough lintel
#

omg 😭😭😭😭

lucid iron
#

It's not easy

uncut viper
#

(if you actually didnt mind chu, i am curious about my translations too, if you ever had the time to give em a scan)

rough lintel
#

chu, you better start charging a fee 🤣

uncut viper
#

map shingles...

lucid iron
#

Ill do button n others after lunch

#

I am glad i had someone to ask when i was doing cp EditMap translations

uncut viper
#

(honestly im not against tossing someone i trust who speaks a language a few bucks just to verify the ones i got arent shit)

royal stump
#

same, I'll take a proofread if it's an open offer, and throw in nexus points if you can use them SDVkrobusgiggle

rough lintel
#

and chu is a trustworthy and intelligent individual, id trust chus proofreading

royal stump
#

for lack of other currency options

rough lintel
#

bc some translators just. theyre not so good

blissful panther
#

Yeah, Chu, when I eventually get around to a mod that has a lot of dialogue... are you open to a bit of a translation commission? SDVkrobusgiggle

lucid iron
#

I do it for free cus i am a nerd who look up manga raws to shit on viz's trashfire translations

uncut viper
#

the only translations i can kinda-sorta-verify ish are the french ones but the others im just at the whims of the translators

rough lintel
lucid iron
#

Jujutsu kaisen special move names was disaster zone

uncut viper
#

but the ones in my books mod seem to come from translators who have done translations for a lot of other, bigger mods, so

brittle pasture
#

(someone sent me a vi.json TL the other day, and I was like "this is the one thing I can do myself, but laaaazzzzzzzyyyyy")

uncut viper
#

(and tbh even the french im still limited to mostly making sure its not completely wrong/sabotaged translations, cant localize them at all/know if theres a better fitting word)

lucid iron
#

Yeah i do think zh tl circles is better than some other languages

royal stump
lucid iron
#

600 mtl mod farms SDVpufferpensive

brittle pasture
#

(but hey, if you got vi.json you want to verify I can do that much at least lol)

lucid iron
#

And they didn't erase wren sbv trans

#

But there r wacky people too

vernal crest
#

One day I'm going to know enough Māori to translate all your mods into it and you'll just have to trust me that it's correct because you'll have no one else to ask SDVkrobusnaughty

lucid iron
#

Caleb npc got a translation that replaced all sdv placenames with love and deepspace names for uh, reasons

uncut viper
#

is vietnamese an official stardew supported language? i dont think ive ever gotten a vietnamese translation sent to me

brittle pasture
#

nope

lucid iron
#

Idk but i saw vi translations in the wild

#

There must be a base game tl mod

royal stump
brittle pasture
#

that's partially why I dont do vi.json for my own mods

uncut viper
#

ive seen em in the wild too, was just wonderin if that was perhaps the reason why ive never been sent one but have for i think every other language

royal stump
#

a few big translations for others have floated around for a while (though I lose track of them repeatedly)

uncut viper
#

one day im gonna start bugging my partner to help me include welsh translations in my mods, even though theres not even a welsh translation mod out there yet

lucid iron
uncut viper
#

last i heard talk about a welsh translation mod was last year and they were having trouble with the custom font. dunno if it went anywhere after that

lucid iron
#

That's y im in STEM

blissful panther
uncut viper
rough lintel
uncut viper
#

CMF is gonna need a few translations unfortunately

#

(well not "need" if everyone who uses it customizes all their strings, but still)

rough lintel
#

ive seen a couple rogue languages i saw once and then never again

lucid iron
#

The pack possum has like 4 lines and i agonized over that for 20mins monS

royal stump
#

I've got a Ukrainian translation in FTM despite never figuring out where the mod itself is, iirc

uncut viper
#

you're hired

lucid iron
#

Is it cus the vanilla strings for museum are in funny places button

uncut viper
#

i reuse all the vanilla strings where i can with LocalizedText

#

but some things needed custom strings

#

and even then, some of the ones i did reuse are written with Gunther in mind, so not ideal

royal stump
#

I should've done that more in a few places SDVkrobusgiggle DB's axe list is pulled from game translations, but that's about it

lucid iron
#

Unfortunate

#

The game has "Cancel" but no "Accept" (unless i just missed it?)

uncut viper
#

these are all the translations that CMF needs (though the MissingLostBook can actually use the vanilla string i think, i tossed that in real quick in the middle of docs writing and its not yet fully implemented)

#

i do not know if it has an Accept

#

it has "OK"

royal stump
#

Strings/1_6_Strings:

"Accept": "Accept",
"Decline": "Decline",```
uncut viper
#

im surprised it took til 1.6

lucid iron
#

I did just miss it yay

ivory plume
royal stump
#

mileage may vary on context, too, but ig it exists

uncut viper
#

what if i wanna handle the UNKNOWN custom language mods....

lucid iron
#

Toki pona sdv when

blissful panther
ivory plume
rough lintel
lucid iron
#

Ok but the game dunhave those either

uncut viper
#

id be surprised if those symbols were contextually the same in all languages too

lucid iron
#

Me vs finding a X besides the one in emojis

rough lintel
#

in asia i know they use the 〇 for yes

lucid iron
#

The cursor one is fat and the 🚫 implies error

tawny ore
rough lintel
#

specifically japan

blissful panther
rough lintel
#

checkmark in jp is “incorrect” but its not like, “No” which is still an X

royal stump
#

I've always been impressed we even managed to share number-writing as much as we do SDVpuffermlem

tawny ore
rough lintel
#

the hieroglyphs have advanced too far. we must go back to colors — green and red.

lucid iron
#

oh thatd me nice

#

green is bad in china

rough lintel
#

oh come ON

tawny ore
lucid iron
#

the stonks is red when going up

rough lintel
#

STOPLIGHTS?

woeful lintel
lucid iron
#

stoplights r green for go cus westerners yea

uncut viper
#

one could show a happy face and an angry face for yes and no respectively, maybe

rough lintel
#

LOL

royal stump
#

(to whatever degree it's not ironic, things like color-blindness mean secondary symbols are mandatory anyway)
(especially for red-green)

rough lintel
#

thumbs up and thumbs down, but i think those have diff meanings abroad as well

uncut viper
#

oh those definitely do

rough lintel
#

we fail at every avenue…

uncut viper
#

id not recommend using those globally without considering it lmao

rough lintel
#

which means we must invent a new system

half tangle
#

insert xkcd "there are now 12 standards"

royal stump
#

as an emote spammer, I find 👍 translates well enough these days, but yeah, nothing's universal

half tangle
#

this conversation has been fascinating to catch up on and follow - language is hard

rough lintel
#

new idea — we have a thing as yes, and then NO thing as no. so its blank for no. how about it fellas

uncut viper
#

if you go the conlang route you can always decide whats linguistically appropriate yourself

brittle pasture
rough lintel
#

yes tree or no tree smirk

rough lintel
uncut viper
iron ridge
#

iirc a chimpanzee could play a (somewhat modified) version of minecraft

uncut viper
#

im sure itd probably work if the face was abstract enough. source: made it up, but it sounds like it could be true

half tangle
#

in the Stardew context, the smile emote (SDVemoteowo) and the X one seem potentially useful as two sides

rough lintel
#

:3 for yes, X for no. easy. we did it

#

language has been solved thanks to cam

brittle pasture
rough lintel
#

LMFAO

#

theyd be able to do the GI crystal puzzle with ease

#

(i had to video tape it as it got too fast and play it back slowly 😭)

royal stump
rough lintel
#

i dont think thatll fit in the text box 😔

lucid iron
rough lintel
#

aw yeah i can read this for sure

#

shi… w- wait thats not wǒ but it looks suspiciously like it

#

and finally, de

lucid iron
crude plank
#

i've started to dream about it

hard fern
#

Why is the prince blue

crude plank
#

blueprints

uncut viper
royal stump
# lucid iron one of the keys `DestroyableBushTypes.Desc` is a repeat of `DestroyableBushTypes...

thanks for checking SDVpufferheart
do any of these seem preferable to you? the description changed with each author

"DestroyableBushTypes.Name": "可破坏的灌木类型",
"DestroyableBushTypes.Desc": "允许销毁的灌木丛类型。",
  
"DestroyableBushTypes.Name": "可破坏的灌木类型",
"DestroyableBushTypes.Desc": "允许破坏的灌木类型。",

"DestroyableBushTypes.Name": "可摧毁的灌木类型",
"DestroyableBushTypes.Desc": "可摧毁的灌木类型.",```
lucid iron
#

i imagine the 3rd one is just mistek

royal stump
crude plank
#

it's so good though

royal stump
#

I figured the copy-paste might be intentional since it's just the header "bush types" and "the types of bush you can destroy", but yeah

lucid iron
#

i would do this

"DestroyableBushTypes.Name": "可破坏的灌木类型",
"DestroyableBushTypes.Desc": "允许破坏的灌木类型。",
#

this tl otherwise uses destroy -> 破坏 so its odd to have 摧毁 here

royal stump
#

SDVpufferheart I'll put that in and swap the tea bush names & credit you for the update, assuming you're okay with it

lucid iron
#

yea sure

royal stump
#

(the other updates came in as I added more config settings, so the authors probably just skimmed the existing stuff)

lucid iron
#

chinese has a term that is more specific to chopping down a tree (砍伐)

#

but since it says destroyable in english no one picked this

royal stump
#

SDVkrobusgiggle I was never sure how to phrase it to begin with tbh

lucid iron
#

language is hard

half tangle
#

yeah, getting my English original for the default.json is stressful

royal stump
#

"choppable" felt weird to keep typing & bushes' internal code says public bool isDestroyable(), so I ended up there

lucid iron
#

yea i dont blame u at all blobcatgooglyblep

#

and choppable is not as specific to tree/bush in english

#

ah ok 砍伐 is hew

#

which is not verbable lol

royal stump
#

"I'm gonna destroy these bushes" also feels weird to say, but conveys the idea in a game well enough SDVpuffersquee

lucid iron
#

hewable bushes...

#

bewable hushes

royal stump
#

sounds like an archery mod now

#

(I guess that's "fletching" instead, but still)

lucid iron
#

not a word avg person uses

royal stump
#

yeah, Ultima Online is the only reason I remember it

half tangle
#

landscapable bushes

lucid iron
#

thats custom bush 2.0 Dokkan

half tangle
#

capable of being landscaped

lucid iron
#

well, in theory idk if matt did it yet

shell parrot
#

Smite them.

royal stump
#

I'd get scope-creeped into letting people plant them SDVpufferlurk

half tangle
#

lol

royal stump
#

(FTM trigger actions will get there eventually, but I don't care to add more nonsense to DB)

#

( SDVpuffersquint VS, why did you just double-slash everything when I copied chu's translation)
\\n\\n

tawny ore
#

@ivory plume not that open sourced mods are inherently more secure, but it's easier to audit that they are only doing their intended purpose. Could it potentially be info that is shared with users in their logs about whether mods are known by smapi.io/mods and open sourced vs those that are not.

ivory plume
tawny ore
#

It is an added incentive for mod authors to keep the repo more up to date

half tangle
#

opinion/vibe question... is there a good reason for me to pick one way of parsing out a trigger action from a string over another? i.e. using /action with events or %action %% with mail or $action with dialogue? Should I just pick one (I'm leaning toward /action) and stick with it or do all three

blissful panther
half tangle
#

I mean if I'm making my own 👀

iron ridge
lucid iron
#

A field so no parsing is required

tawny ore
lucid iron
#

Bonus points make it a list

tawny ore
#

It's like how SMAPI tells users these mods do patches, but most people ignore it.

blissful panther
half tangle
#

hm... I am still in beta so it's not a big deal to add a field, true... I kinda like what parsing out allows in some ways, too, though... might not be reason enough to avoid a separate field

tawny ore
#

Even better would be a way to detect if the copy of the mod you're running is a known hash of an official (or known unofficial) build

lucid iron
#

Then the answer is gonna depend on what else is in the same field

#

Doubt anyone really cares as long as it's documented

#

But i am very lazy and want json net to parse it all for me

iron ridge
lucid iron
#

The other reason to have it as a field is cus cp can edit fields by itself

#

If u r parsing then off to text operations with thee

ivory plume
iron ridge
#

forgot about that

half tangle
#

Yeah, makes sense

#

Related question: if a trigger action has two optional fields, how does the user indicate that a provided field is the first and not the second? Like how in C# we can tell a method X: 3, Y: 3 for parameters X and Y or can tell the method just that Y: 3 and leave out X

final arch
#

do you have an example? I wouldve guessed by type

half tangle
#

I wanted to be able to have two optional strings, one a player facing string, one a trigger action (or list of trigger actions)

lucid iron
#

I put a placeholder like T for this

#

It's not great but makes the parsing part easier by a lot

#

The srs bsns way is uh, reinvent the wheel called getopt.h

half tangle
#

oh, so if the user wants the first to be blank but the second to exist they'd write ... T action for the last two

lucid iron
#

Yep

half tangle
#

it's not bad - in my case no one's gonna have the first be just T

#

I appreciate the insights

uncut viper
#

you can also choose to have your function parse the arguments two different ways depending on what it sees in the first argument (if anything)
could check whether or not the first string is a registered trigger action for example and if it is, assume they skipped the first optional arg

#

this is what the viewport event command does, as well as the museum artifact GSQ, and probably a couple others I'm forgetting

#

(personally I also opt for the placeholder method though)

royal stump
#

most of my console commands do that, but I'm starting to avoid it because my code ends up messy
(though 1.6's arg utilities help in some cases)

#

pretty convenient if there are simple differences between args, but there might be weird edge cases with gsq string vs other string

uncut viper
#

yeah it's a lot harder when they're the same type

sour sleet
#

Is there an alternative to Item Extensions for custom nodes?

lucid iron
#

i have never seen this happen in normal gameplay bolbphase

brittle pasture
royal stump
lucid iron
#

normally this froge just jump into water

#

im surprise it didnt just jump into dirt

royal stump
#

yeah, I think a few critters like that want to hit specific objects/tiles or they'll just keep going

lucid iron
#

i did like how

royal stump
#

rabbits/squirrels iirc anyway

lucid iron
#

crabs panik around but eventually decide existing is too hard

#

if theres no water

#

man i wanna get frozen yogurt

blissful panther
lucid iron
#

its s&s and yes it is

cyan marsh
#

was there a change in content patcher somewhere?

ocean sailBOT
#

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

lucid iron
#

can you share the mod json too

cyan marsh
#

certainly

#

they are using my NPC creator.. still not updated, but still worked for a while

blissful panther
#

Custom locations are definitely the old way of doing things to start.

cyan marsh
royal stump
#

I'm not super familiar with the npc format, but it looks like that's loading portraits to just Portraits/SantosPerez, but the NPC's ID is {{ModId}}_SantosPerez

lucid iron
#

yea custom location is not great but still works

cyan marsh
#

(i've been trying to get him to update that to CharacterData

lucid iron
#

when no appearances exist and TextureName not set to something else, the game falls back to trying for Portraits/<npc id>

#

so the load should also be Portraits\FallSpice.AltagraciaMod_SantosPerez

#

its not a recent CP change just 1.6 Data/Characters

cyan marsh
#

yeah.. but for a good while, old NPCs still worked

#

old as in pre 1.6

uncut viper
#

not if theyre using a modern CP format number, iirc

royal stump
#

yeah, I'm not sure how dispositions + Data/Characters would work in the current CP format, but the error seems to be that the portraits it's checking are missing

lucid iron
#

if they were targeting npc disposition, content patcher would have migrated that

cyan marsh
#
{
  "Changes": [
    {
      "Action": "EditData",
      "Target": "data/NPCDispositions",
      "Entries": {
        "SantosPerez": "teen/polite/shy/neutral/female/non-datable/null/Town/spring 7//FallSpice.AltagraciaMod_AltaHouse 7 7/Alta"
      }
    }
  ]
}```
lucid iron
#

u also want smth like this for the sprites schedule and so on, it should all use same internal npc id

cyan marsh
#

I get that.. but in practice, there shouldn't be an issue

royal stump
#

as far as I'm aware, CP only does migration for non-existent files like dispositions if the format number is older, predating its removal

lucid iron
#

no like, game is literally looking for dialogue at Characters/Dialogue/<npc id>

cyan marsh
#

ahh

#

I see then

lucid iron
#

if you dont want to change all that then keep using SantosPerez as the key instead of {{ModId}}_SantosPerez

#

{{ModId}}_SantosPerez is recommended way in general ofc

lucid iron
#

regarding animation there's 2 possibilities here

  1. spacecore animations
    • this directly targets your path texture and animates em
    • bonus is that they are animated in the inventory too
  2. TouchAction mushymato.MMAP_ContactTAS
    • you can make a temporary animated sprite that appears while the player is on a particular tile
sleek flint
#

Does anyone know which game file contains the logic for the travelling merchant? Specifically, how it picks random items from all of the game's items?

#

Hi Miss Coriel SDVpufferheart

cyan marsh
#

<.< people are scamming others by saying they can help you/help you learn to mod

#

I am sad that this is a thing

lucid iron
#

so the random thing is a specific item query

#

look at Data/Shops "Traveler"

#

RANDOM_ITEMS (O) 2 789 @requirePrice @isRandomSale

cyan marsh
#

discord.. nexus has the unfortunate thing of people trying to put malware into mods

#

i am happy and quite suprised no one has tried to do that here..

trim sand
#

So this is probably a stupid question,
But I've got a C# based mod that makes the ranching branch of farming professions factor into the calculation for the value an animal sells for, I was wondering if it's possible to make said modifiers configurable?

cyan marsh
#

Schedule I mods have to be looked through because people put code in it to do nefarious things DX

cyan marsh
lucid iron
#

if its your mod then you just need to add a GMCM or something

uncut viper
#

you dont NEED to add GMCM but its helpful

#

for the users that is

lucid iron
#

true you can just use config api by itself

trim sand
#

Honestly I'm just not sure how to read config data from inside the C# code

cyan marsh
#

indeed.. a little extra work to get it on there.. but the headache it saves is awesome

uncut viper
#

GMCM will have its own documentation if you do decide to include that

cyan marsh
twin wadi
#

why are events so complicated SDVpufferwaaah i understand what to do but it just takes so much effort lol

cyan marsh
#

There are some programs that make eventing point and click, My NPC Creator might be outdated, but the eventing section is still useable

twin wadi
#

also i used to use fork, i dont really get goto?

trim sand
#

Goal is basically just to make the animal sell value calculations configurable, with the addition of the profession based bonuses to the calc.
Because 130% of buy price at max friendship just ain't it chief.

lucid iron
#

goto not in the game yet

uncut viper
#

i thought goto was just a 1.6.16 thing?

twin wadi
#

ohhhh ok

cyan marsh
#

im interested in that.. we got stuff on it yet?

twin wadi
#

sorry i misunderstood haha

#

i was a bit confused

uncut viper
#

(also the NPC creator doesnt use the new preconditions format i imagine?)

uncut viper
#

does it still use the old format of just like, singular letters

cyan marsh
#

I updated it to take string IDs but if there is something after that I am unsure

uncut viper
#

theres also some deprecated preconditions that technically still work but shouldnt be used anymore

lucid iron
#

no actual public build out take this page as a proposal

uncut viper
#

like A/NotActiveDialogueEvent etc

sleek flint
uncut viper
#

(the singular letter form of all preconditions is also deprecated)

cyan marsh
#

i don't see how precons work now

uncut viper
#

theres also just a bunch of new event commands and preconditions as well that may not be present in the creator

lucid iron
#

It's on the wiki events page

uncut viper
#

(ive not used it so i dont know if the list of them is hardcoded in or not)

lucid iron
#

Either way the single letter stuff still work

#

Backlog changing all that for the full npc creator updoot

cyan marsh
#

i'm still trying to get it to push out the Character data

#

I got the code.. but I haven't gotten it to push out the thing correctly yet

#

i think i got all the basics in there.. but

#

this, i believe covers it all

#

makes matters worse, i have a cat that has deleted my code by jumping on my keyboard DX

trim sand
#

another silly question, does anybody know where information on which profession internal IDs are which lives? mostly need to double check since i wrote this code months ago and no longer know which branch of the logic is which. whole mod wrapped up in this mess of a patch.

    internal static void SellValuePatch(FarmAnimal __instance, ref int __result)
    {
        try
        {
            int SellValue = __instance.GetAnimalData()?.SellPrice ?? 0;
            double mod;
            double bonus = Class1.ModEntry.Config.BaseValueBonus;
            if (Game1.player.professions.Contains(0))
            {
                bonus += Class1.ModEntry.Config.RancherValueBonus;
                if ((Game1.player.professions.Contains(2) && (__instance.GetAnimalData().ProfessionForFasterProduce == 2 || __instance.GetAnimalData().ProfessionForQualityBoost == 2 ||
                    __instance.GetAnimalData().ProfessionForHappinessBoost == 2)))
                {
                    bonus += Class1.ModEntry.Config.ShepherdValueBonus;
                }
                else if ((Game1.player.professions.Contains(3) && (__instance.GetAnimalData().ProfessionForFasterProduce == 3 || __instance.GetAnimalData().ProfessionForQualityBoost == 3 ||
                    __instance.GetAnimalData().ProfessionForHappinessBoost == 3)))
                {
                    bonus += Class1.ModEntry.Config.CoopmasterValueBonus;
                }
                mod = (double)__instance.friendshipTowardFarmer.Value / 1000.0 + bonus;
                __result = (int)((double)SellValue * mod);
            }
        }
        catch (Exception ex)
        {
            Monitor.Log($"Failed in {nameof(SellValuePatch)}:\n{ex}", LogLevel.Error);
            
        }
    }
}
royal stump
ivory plume
#

(I suggest changing the numbers to the constants in your code, like 3 would become Farmer.shepherd.)

trim sand
#

... Why I didn't consider that when writing this originally I do not know.

cyan marsh
#

it happens to us all

trim sand
#

Fortunately this isn't a released project.
And honestly probably still won't be.

#

This whole thing is ultimately pointless and a "who cares" kinda deal.

cyan marsh
#

blargh this is tedious

#

it's the 8th time I've tried this DX

lucid iron
#

git commit often to ward against code deleting creachers

cyan marsh
#

well.. i can probably work my issue out before i get too far

#

I use NPCDatum to contain all of the information... I know that I need to patch it in this ```cs
DataModels.PatchModel CharacterData = new DataModels.PatchModel
{
Action = "EditData",
Target = "Data/Characters",
Entries =
};

#

but I need to make it use NPCName: <NPCDatum> in the entries

#

that's what I'm trying to figure out

#
            DataModels.PatchModel CharacterData = new DataModels.PatchModel
            {
                Action = "EditData",
                Target = "Data/Characters",
                Entries = new Dictionary<string, DataModels.NPCCharacterDataModel>
                {
                    [CharacterId] = NPCDatum
                }
            };
``` I thought it would work like this, but it's not
#

sorry cat all over me again xD

#

so I made a PatchModel Duplicate, and instead put Entries to host specifically this model..

fossil dagger
#

how do i take files from a mod and add them to an AT pack? the files i pull over don't show up in AT

#

Using "Alternative Textures" and trying to integrate "Elle's Cuter Horses"

lucid iron
#

You need to name the folder correctly, I don't know how at handles horse off hand

fossil dagger
#

assume I have no idea what i'm doing; which folders have to match?

lucid iron
#

I recommend looking for a AT horse mod to use as base

#

Bc i also don't really know the AT setup here

fossil dagger
#

oof got it

cyan marsh
#

blargh.. i left out calendar

fossil dagger
#

someone already did it!!!

#

@lucid iron ty, u gave me the right keywords to find it

manic shoal
#

I'm writing the description on Nexus for my mod and I forgot how much I hated trying to format anything in the description SDVpufferangery

cyan marsh
#

added in the missing things DX

#

sooo much data to account for

iron ridge
rare orbit
#

quick question? when it comes to making mods? can i use python? i wanna know cause some schools are doing free programing courses

lucid iron
#

Not without sinz's six

#

And overall not recommended

rare orbit
#

hm hey it's cool to just link the page right?? it might be a useful resource too

#

i mean they're from harvard and honestly it might be helpful to know

uncut viper
#

it wouldnt be related to stardew modding

rare orbit
#

kk!

#

i did add the mod making part when i asked in the linked area

#

since i'd love to get better and honestly i find being taught helped my skills in areas like art so i thought i could use that same logic when learning to code

idle lantern
#

I did it! I finished my first event mod!

lime seal
#

Congrats! I know from experience those are intense when you start out lol

serene moat
idle lantern
#

I feel like I need to both take a break from the computer AND start a new one

rare orbit
#

has anyone had their mods also be part of course homework??

#

i'm taking a free course on programing and i feel having a final goal would help me get to where i wanna be

idle lantern
#

Closest I've got it that Igot credit for fanfiction in highschool for a narrative writing course. (20 years ago)

rare orbit
#

ohhh

#

cool!

#

i've used my ocs for my graphic design final

idle lantern
#

I think that's a good plan. Double dipping on motivation

rare orbit
#

yee :3

#

it really depends on the course too

#

like programing and graphic design has a decent amount of freedom when it comes to what you can produce so long as you prove you know how to apply it

idle lantern
#

If the course director/teacher doesn't have a giant stick up their patoot, your product shouldn't matter if the learning process was the goal

#

I teach gifted kids though, I tell them to do what they want within a set of parameters, and kick my feet up

#

I'm not a shining example of teachering

half tangle
#

I know we get a couple waves of mods that are school projects each year but they're rarely updated or do anything about compatibility because the authors aren't often involved in the modding community

rare orbit
#

yee! honestly the only time i understood why one professor i had did say to not start with fanart was cause they basically told me i need to understand the fundamentals of the medium before i apply it to other works

idle lantern
#

I wish there was a way to make Stardew valley content patcher modding more drag and droppy, like scratch or code.org. out my own desire for streamlined laziness

twin wadi
#

is this how you format a quickquestion in an event? i wasnt 100% sure

quickQuestion \"question\"#\"answer1\"#\"answer2\"#\"answer3\"(break)speak {{ModId}}_npc \"response1\" (break)speak {{ModId}}_npc \"response2\" (break) speak {{ModId}}_npc \"response3\"

idle lantern
#

You need double \s in there, during quick questions. I can't remember where. Let me find an example that I got working

twin wadi
#

maybe when you need multiple script lines in a response?

idle lantern
#

I used the standard single /s after that, to finish the event

rare orbit
#

would it help in general for modding to learn any coding language?

#

if so are there youtube tutorials on it?

#

maybe i am also used to classroom styled learning

lucid iron
#

if you want to learn coding to make mods then just skip to the part where you learn C#

idle lantern
#

I haven't done any coding since 2004, and I was able to pick up content patcher stuff easily. I think finding tutorials on the important of closing brackets might help

rare orbit
#

hench why i did so much better with my art for example when a teacher was there to teach me

lucid iron
#

i dunno about yt tutorials but yellow book very recommended

rare orbit
#

yellow book huh? how much are they?

#

and what languages should i know for modding with stardew modding?

lucid iron
#

im psure its free

ionic dawn
#

Hey there people of the Valley, first time modder here, I was wondering, how can I make a custom piece of atire for the character select screen?

lucid iron
#

the programming language for stardew valley is C#

ionic dawn
lucid iron
#

erase all thoughts of pants and skirt from your mind

#

here are info about how hats and shirts are defined

#

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

lucid iron
#

take a look at the content patcher tutorial as well

ionic dawn
lucid iron
#

it is an immense amount of sprites

ionic dawn
#

Oh I'm fully ready to do that lol (I don't mind the extra work, helps me learn stuff)

lucid iron
#

another thing you should be aware of is that many people use fashion sense instead of vanilla system for clothing