#making-mods-general

1 messages · Page 332 of 1

lucid iron
#

But that's honestly secondary to "pls use i18n that i provide" cus they should just let u know

vernal crest
#

I just checked your mod permissions. You will be perfectly fine to report their mod and get it taken down if they do upload the whole thing. I've had a translation taken down before and it was i18n. I just reported that it was done without my permission.

lucid iron
#

There goes benefit of doubt then

lucid mulch
#

and that it was best practice for opensource codebases to just... commit the keys to git

whole raptor
#

Person not good at English translating a mod from English...? Yep, that'll end well

lucid iron
#

Bad at english is wrong descriptor

serene moat
lucid iron
#

More like unaware of modding docs which r English

jaunty shuttle
#

“It’s normal” is the lamest excuse for plagiarism I have heard in my life

vernal crest
#

It's true that there are definitely very different modding norms in some of the other languages for Stardew.

whole raptor
#

I mean yeah... but it always strikes me as abstract when someone who doesn't feel comfortable with the 2 languages, upload translations of all things (machine translations ofc)

serene moat
#

They seem to have done it with a lot of other mods

patent lanceBOT
serene moat
#

Am I allowed to post the username so people can check it out?

fading walrus
#

I have a do not machine translate condition in my translation requirements specifically so that I can snipe people like this, I have to admit

whole raptor
#

I'm decent in english, but I'd never even attempt to translate something into native language, cause half of English stuff doesn't even have a proper translation in my lang SDVpuffersquee

blissful panther
#

I might have been slightly lied to about this based on some more searching. Maybe? It seems fairly vague whether the IL is also hashed and that signed within the manifest or not.

sweet niche
#

hey quick question, would it be okay if someone went on a vc here with me because i'm getting confused.

fading walrus
calm nebula
#

The thing I worry about is the ability to sign in post

#

But even then you could match it against my public key

#

In my github

whole raptor
calm nebula
#

It's not great but it worns

blissful panther
#

I'll do proper code signing at some point... I just need to financially justify it somehow.

lucid mulch
#

in my view, we don't need globally trusted code signing

blissful panther
#

I mean I will for releasing the game I'll eventually release.

#

And when I have that, no harm applying it to my mods.

calm nebula
#

That's awesome, dh

lucid mulch
#

SMAPI itself would need it if we wanted end to end supply chain, but smapi mods can get away with a CA that SMAPI trusts, up to and including its own

vernal crest
blissful panther
#

A SMAPI-owned CA could be pretty nice...

#

(Sorry, Pathos. SDVkrobusgiggle)

vernal crest
#

SMAPI owning CA?

blissful panther
#

Not that kind of CA!

iron ridge
#

i think CA here is certificate authority

vernal crest
#

Oh haha

calm nebula
#

A smapi owned California

lucid mulch
#

doesn't need to be a full certificate authority and just a valid digest server

calm nebula
#

Aba, we finally get cancer warnings on everything

blissful panther
#

And if this ever happens, it's absolutely going to be when the security changes come into play.

lucid mulch
#

smapi fronting an Azure Key Vault instance is Close enough™️ though the premium tier might not make financial sense

iron ridge
lucid mulch
sweet niche
fading walrus
#

Well
English is my first language but I barely watch anything in Hindi or Kannada or Konkani

vernal crest
# sweet niche Alright ty for letting me know. Rn I have The tmx file with the edited Forest. t...

You don't need .tsx files at all if you don't have tile properties or animation data for the tilesheet. If you're wanting to transfer tile props/animation data from one map to another you export a .tsx file from the source map and then embed it into the target map. Then delete the .tsx file.

In your case I doubt you ever needed the .tsx in the first place since it's unlikely that your door tilesheet came from another map with tile properties or animation data that you wanted to preserve. If I am correct, you should be able to delete the .tsx file (just move it to another folder outside your mod folder for now).

#

Whoops, I failed to finish my thought.

vernal crest
serene moat
#

Yeah, I took it as a no heartsally

lucid iron
#

I feel like we link nexus mod authors sometimes...

#

Is that no good

lucid mulch
#

actually the premium sku of keyvault's pricing is fine, this would be low volume and its entirely usage based pricing

blissful panther
vernal crest
lucid iron
#

Yeah but previously I'm psure we linked translators to ask if they r legit

lucid mulch
#

"hey look at this cool mod/modauthor" vs "burn the witch" are different contexts

lucid iron
#

That said you would really want someone with more than 0 knowledge to glance at the tl in this case

vernal crest
#

We have in SMC, I don't know about here in maincord

lucid iron
#

*more than 0 knowledge of russian

vernal crest
#

Oh dear I just made my Stardrop even less readable

fading walrus
serene moat
#

It wouldn’t be to burn the witch, it would be a ‘check if your full mod has been posted here without consent’

fading walrus
sweet niche
lucid iron
#

You will need a full tmx to add new sheet

#

But you probably want to redo it starting from a new copy of Maps/Forest.tmx

#

Crop that down to wizard tower and then add in the sheet

vernal crest
blissful panther
lucid mulch
#

is it the zip file that has the attestation or the files inside the zip?

blissful panther
vernal crest
lucid mulch
#

for a mod security concept it would need to be the dll(s) that have it, as the user will unzip the zip file

blissful panther
#

Actually, no, it should have the assembly in there too...

#

I think I did an oopsy.

fading walrus
blissful panther
#

@lucid mulch Look what happens when I don't forget a single slash in the path pointing to the assembly. SDVpufferwaaah

lucid iron
#

So if i got smartbuilding.dll from suspicious site

#

How can u know it's ur build

#

What's the mechanism to check the sha here

blissful panther
#

Oh, there is no casual user friendly way.

#

You hash it, and check the sha256 hash against the one in the GitHub release, or the attestation. This is more personal satisfaction and being able to prove if absolutely needed. SDVkrobusgiggle

sweet niche
ocean sailBOT
vernal crest
#

The problem is tilesheet directory climbing.

#

You must not edit a map without every single tilesheet it uses being in the same folder.

sweet niche
#

so i have to separate the tilesheets and the map with a folder?

vernal crest
#

No, the opposite. You edited the map while it was in one folder and the tilesheet was in your Content (Unpacked)/Maps folder.

#

They have to be in the same folder while you edit it.

ivory plume
#

Yeah, that's because the NuGet site pulls the README from GitHub, but its parser kind of sucks compare to GitHub's. I might need to handcraft a simplified README just for NuGet.

vernal crest
# sweet niche so i have to separate the tilesheets and the map with a folder?

You can fix it by right-clicking on your .tmx file and opening it in a text editor. Do a Ctrl-F search for source and you'll find something like source="spring_outdoorsTileSheet", except there will be a bunch of slashes and dots inside the quote marks too. Remove the slashes and dots so it only has source="spring_outdoorsTileSheet" and then save and test again.

vernal crest
sweet niche
vernal crest
sweet niche
ocean sailBOT
sweet niche
#

i fear i did an oopsie

vernal crest
#

Yup I have no clue how you managed that

sweet niche
#

yippie

vernal crest
#

Were you loading an existing save?

sweet niche
#

yeah

#

I'll try a new one ig

ocean sailBOT
gentle crescent
#

Anyone know if I have Item name for example "Fried Egg" or have ItemID string for example "194" how to get the other one? (get name or get ID, I'm trying to compare two lists)

calm nebula
#

You saved with a reference to a zero width tilesheet

gentle crescent
ocean sailBOT
#

Follow this guide to unpack the game's content files in order to see and explore how the game data is structured.
It's helpful when making your own mods, or just to learn about how the game works!

calm nebula
#

Map the key to the name and back

vernal crest
gentle crescent
sweet niche
vernal crest
sweet niche
#

yeah

#

i put it back in tho

calm nebula
#

I'm not telling you anything specific to stardew

#

Map = hashmap

gentle crescent
#

My question tho is how do I load the list from Data/objects

calm nebula
#

!yellowbook

ocean sailBOT
calm nebula
#

It's not a list. It's a dictionary

#

Game1.objectData

lucid mulch
#

Key value= json object = dictionary
Array with integer indexes = json array = array/list

gentle crescent
#

Ok I think I got it, but maybe there's a better way to do what I'm trying to do tho, maybe you could help me? I'm trying to find out how many players haven't cooked any cooking recipe in the game so at the end I'll have a dict with for example "194" as a key and 3 as a value if there are 3 players that never cooked fired egg before

brittle pasture
#

or getOnlineFarmers if you only care about online players

onyx gazelle
#

Dunno what Im doing wrong but it doesnt work for me

#

I just changed the ogg path and the mod ID

brittle pasture
#

anything in your logs?

lucid iron
#

You definitely have ogg right?

onyx gazelle
onyx gazelle
tiny zealot
#

1614 is a curious value to use in a TIME query

onyx gazelle
#

Its the exact moment when the NPC reaches the piano

#

Nothing plays

#

Wait, is it possible to play a sound through an event and that event being called through her schedule?

#

ive been looking at Elliot's events and saw a command called playSound

tiny zealot
#

event commands are not reachable from schedule scripts, no

onyx gazelle
#

sad

tiny zealot
#

i have an unfinished mod that does allow you to set up ambient sounds and music tied to NPC schedule animations, but it's unfinished and unreleased

onyx gazelle
#

ow, I guess I should simply wait until its released and make her "pretend"

#

If u ever release it, ping me pls

tiny zealot
#

probably what is happening for you is related to this (from the wiki):

Music (Optional) The music to play when the player enters the location

#

so you would have to enter the map during the TIME window, i think, in order for the music to play

onyx gazelle
#

I entered between 4:14 and 5:00

#

Nothing playing

#

And I was already warned about it

lucid iron
#

Can u patch export Data/Locations

#

See what is already defined in ElliottHouse music

#

Another thing you can do is debug gq WEATHER Here Sun, SEASON Spring, TIME 1614 1700

#

It should show whether the query is returning true for you

calm nebula
#

I thought spacecore had it

#

Maybe not

#

No idea

serene moat
#

When you have been trying to figure out what is wrong for way too long and it’s because you wrote e instead of a limitreached

onyx gazelle
#

If my NPC's Home is the beach, what would happen when the Night Market season starts?

#

In theory the map ID it's different

crude plank
#

The home wouldn't be there if you don't also put it on that map

ornate locust
#

Same for all of the other festivals that use the beach, it'll vanish

onyx gazelle
#

So how do I make her to not despawn on Night Market season?

#

Should I add this to the disposition json?

ornate locust
#

No I don't think you understand

#

She'll still be there, her entire house will not be

#

You need to put the house on all of the beach festival maps to keep it there

onyx gazelle
#

ah, not a house, she's in the beach itself

ornate locust
#

You said "the NPC's home" so that was confusing

onyx gazelle
#

This is a savefile with the Night Market ongoing, and she's not there.

ornate locust
#

You need to give her a schedule for the Night Market days that puts her on this map

#

the Night Market version

onyx gazelle
#

how I do that?

ornate locust
#

Do you have any schedules?

onyx gazelle
#

yep

ornate locust
onyx gazelle
#

Im seeing it right now

#

but it would fix her not spawning despite its her home the beach?

ornate locust
#

That'll get you the day, and the map is... one sec

#

She is spawning

#

She's just on the wrong version of the map

onyx gazelle
#

yeah!

#

Thats what Im saying!

#

The beach is her spawn point

#

I KNOW the night market has a different ID

#

It's BeachNightMarket if Im not wrong

#

So, I need to add a condition SOMEWHERE in my json to tell the game to spawn her as well while the Night Market is ongoing

#

But dunno where or how

ornate locust
#

You don't have to spawn here there, I mean, you just need to move her. Hang on, digging through my own schedule for my night market stuff

onyx gazelle
#

the point is in theory she came from the ocean itself, so her spawn must be there

#

like, at the beginning of the day she emerges from the ocean, since she's a Water Demon. The NPC is based on an existing anime character, so dont overthink about why she's what or what she does in the beach

ornate locust
#

Sorry I'm not sure I'm being clear, I mean that you can fix this before the player sees it basically by moving her. Or... you should be able to. It seems like it's still just "Beach" on that day, if I'm not mistaken, but spawning isn't updating to the right map like scheduling does? Hm

#

Idea: Have her start the day in Willy's with a 0 schedule that day and step outside at 6:10. It'll happen before the player could possibly see it, and it SHOULD get her onto the right map.

#

and it'll still look like she just spawned on the beach

onyx gazelle
#

they told me that adding an schedule at 0 is not recommended

ornate locust
#

I guess you could try to move her and hope the schedule puts her on the correct beach.

ornate locust
#

Well yeah, she's not there now, I mean that if you have her start in Willy's and step outside at 6:10 and it works like it should, no player will notice this transition happening

onyx gazelle
#

Is it possible to add multiples homes?

#

like this

ornate locust
#

You can try it, with a conditional for night market days

#

If it works for Leo, should work out for you, after all! It's just weird because "Beach" works fine in scheduling.

#

Suppose scheduling and spawning are handled differently

onyx gazelle
#

This is correct?

ornate locust
#

I think so, though remember you might need to rest a day to see if it works.

onyx gazelle
#

then I need to do it in another savefile

ornate locust
#

You could also use CJB to set it to the day before Night Market and then sleep

#

I did that for a lot of day-specific testing

onyx gazelle
#

I DID IT

#

But I think I messed up her dialogues?

#

Shes not saying anything to me

ornate locust
#

huh

onyx gazelle
#

And her schedule seems broken

#

she moved over the water instead of following her winter schedule

#

needs to be an specific prompt instead of winter in her schedule?

ornate locust
#

You could try giving her a specific schedule/dialog for night market days?

#

I'm afraid that I'm not sure why this would happen in general

onyx gazelle
#

I returned a few days before Night Market and her schedule is back to normal

#

Seems to be broken on Night Market days only

ornate locust
#

By the way, from what I understand, 0 schedules aren't recommended because of NPC doubling issues, but those issues SEEM to rise mostly when NPCs use a mix of normal schedules and 0 schedules. I have an NPC that uses entirely 0 schedules and I haven't got any reports of doubling with him

onyx gazelle
#

Wait what? Im on Night Market days and now she's doing her normal schedule

#

I dont understand

ornate locust
#

Oh you may have just needed to rest to kick her schedule into gear

#

Schedules are REALLY finicky when changed

onyx gazelle
# onyx gazelle

In the first try, I changed the date to Winter 13. I rested twice until Night Market days, then i shown this pic,

#

plus the dialogue issue its bc I forgot to add Monday dialogues

ornate locust
#

That'd do it.

onyx gazelle
#

wait

#

could it be because i saw a cutscene the night market day on the beach?

#

so her schedule got messed up

#

somehow

ornate locust
#

I wouldn't think so

onyx gazelle
#

its a fresh savefile where I swapped the day directly to winter so events that shouldve happened way much before started to trigger now

tribal ore
#

CP is throwing an error because I'm trying to use Random on a null set. I understand that's a problem, but I was using When{ "HasValue: {{theset}}": true } to try and prevent that.

    {
        "Name": "dynTokenName",
        "When": {
            "HasValue: {{TheSet}}": true,
        },
        "Value": "{{Random: {{TheSet}} }}",
    },
#

Also tried using a "Query: Count{{TheSet}} > 0"

#
InvalidOperationException: The 'Random' token requires input arguments.```
#

Is there no way to prevent Random from being evaluated when the set is empty?

lucid iron
#

Is TheSet your token

tribal ore
#

Yes

#

A list of strings

lucid iron
#

It should be invalid then

#

As in mark it as not ready

#

With the interface method

tribal ore
#

Ooooh, ok. Thank you

modest dagger
#

trying to make warp between these maps and this happens, i tried taking a screenshot to see where i was on the map and i just don't appear. Anyone got any idea as to what could be the issue

lucid iron
#

Wiz did you find out what tile 6,9 actually is atm?

modest dagger
#

no i have no idea where it's teleporting me

latent mauve
#

Is the new map on the beach yours?

#

If so, can you screenshot it in Tiled?

gentle rose
#

try using debug ppp in the smapi console wiz

#

it will print out where the player is (ppp = print player position)

latent mauve
# modest dagger

what do your map properties look like? I'm wondering if there's a rogue Viewport Clamp causing issues here.

gentle rose
#

when in doubt, debug ppp, trust me /lh

modest dagger
#

says i'm at 10 56??? my map isn't even that large

gentle rose
#

that would explain it, at least

#

show us your warp code?

modest dagger
#

12 27 Wizadroid.TGW_Hallowed_Haven 18 9 13 27 Wizadroid.TGW_Hallowed_Haven 19 9 10 8 Wizadroid.TGW_NeithUpper 2 18 11 8 Wizadroid.TGW_NeithUpper 3 18 14 9 Wizadroid.TGW_NeithBasement 17 4 15 9 Wizadroid.TGW_NeithBasement 17 5 i just use the warp stuff in tiled, it's worked for the other maps

gentle rose
#

which one is the one that's doing this

modest dagger
#

first two

gentle rose
#

could you post here/dm me the two tiled files? just so there's a fresh pair of eyes on them in case it's obvious

#

if you've been staring at this for a while things all start to look strange

modest dagger
latent mauve
#

Both your maps are loads, right? If you patch export on your maps, are they the same?

#

Command would be something like: patch export "Maps/Wizadroid.TGW_Hallowed_Haven"

modest dagger
#

it just lists out the tilesheets i'm using?

latent mauve
#

The command should give you a folder that contains your map file + all the tilesheets used on it

modest dagger
#

wait

#

...

#

i have a mapwarps json as well as the tiled

latent mauve
#

There will be a folder named patch export in your Stardew Valley game folder

modest dagger
#

guess what the destination is

#

10 56

#

😔

latent mauve
#

Yeah, if you have a code acting on it, that'll show up in the patch exported version, which is why I wanted to check that. 😛

modest dagger
#

oh my god

#

ok, it works now thank you so much

vast verge
#

Is there a way to turn any map added by mods to a PIF room? You guys said they are basically identical to normal maps, so i wonder what should be done to make them "available" as extra PIF dimension maps. Maybe just copy-pasting the map in a standalone mod plus editing ... what exactly?

fading walrus
vast verge
#

An unrelated question: is there a limit to the number of mails i can have in my collection tab? Or, if i get too many from mods, they'll overwrite older ones?

uncut viper
#

there's no limit

fading walrus
#

should work the same as the item collections tab, yeah

uncut viper
#

it should add pagination as necessary

fading walrus
#

in which case, see shipping collection that has god knows how many pages with all the item mods installed

uncut viper
#

too many, that's how many

rare orbit
#

how hard is it to make a festival?

#

im not making one right now but wondering

#

also? how do i add gift tastes for modded npcs?

tawny ore
#

I'm guessing a lot of the work is just scripting everything out, and optionally adding compatibilty for modded NPCs

rare orbit
#

coolio! it'll probably take a while

#

but i got time :3

lucid iron
#

So u can make a passive festival or an active one

#

Both r a bit limited in terms of what exactly will u do without C# to make minigame

rare orbit
#

ahh i might do a passive one

#

but idk since i am new to coding

#

one things for sure i gotta finish the recipe mod

#

btw? how do i add more items? without breaking the code?

#

for the recipe mod

tawny ore
rare orbit
#

cool cool!

#

also? for adding items from wildflour's atelier goods? what do i input to allow for users to be able to use any flour? wag adds different types of flours and idk what to put in the recipe data nor the spacecore data

#

it shows up but it only allows for wheat flour which is ok... but i wanna allow for any flour to be used

tawny ore
rare orbit
#

tried to but flour is an item in vanilla

lucid iron
#

Recipes need spacecore for context tag

rare orbit
#

still trying to get that

#

tried to input flour_item to specify that any flour can be used

#

but it only pulls vanilla flour

#

idk what im doing wrong.

#

can i just input flour_item in the recipes section and it'll pull from this?

tawny ore
#

Try using Lookup Anything with data mining fields enabled, and hit the search hotkey to look up the items and tags they have

rare orbit
#

i'll try that

urban patrol
#

for what chu was talking about it, look up this section in the spacecore docs

rare orbit
#

sweet! i did that but in the recipes json? it'll still pull the vanilla flour

#

which i want the flour to still be an option but i know the item in question can be made with other flours

#

also? is 5k too much for the recipes??

#

like 5k gold?

tawny ore
#

It depends. Look at it next to other recipes. What is it more expensive than? What is it cheaper than? Is it more/less worth it than other recipes?

rare orbit
#

cool cool i'll have to double check

vital dew
#

ok..... dumb (panicked) question... my tiled crashed pls tell me there is autosaves...........

#

or restore file or something

calm nebula
#

Bringing this convo from elsewhere

#

What is your worst effort:udl mod

uncut viper
#

worst as in least, or worst as in like, actually bad effort

vital dew
#

why

lucid iron
#

I think it is about most effort to least udl/other popularity metric

half tangle
#

whether it helps to take a break or jump back into working on the map, hopefully this means you're better at making the map for the next time - and you might end up saving more often as a lesson learned

uncut viper
#
using System.Diagnostics.CodeAnalysis;
using StardewModdingAPI;
using StardewModdingAPI.Events;

namespace DisableJoystickChat
{
    internal sealed class ModEntry : Mod
    {
        public override void Entry(IModHelper helper)
        {
            Helper.Events.Input.ButtonPressed += (sender, e) => { if (e.Button is SButton.RightStick) Helper.Input.Suppress(e.Button); };
        }
    }
}

this is probably my lowest effort:UDL ratio mod. so little effort it fits into a code block

#

(my highest effort to udl ratio is definitely Mirror Mode)

brittle pasture
#

nothing's beating mirror mode any time soon SDVpuffersquee

uncut viper
#

definitely not. gonna hold the record forever, most like

brittle pasture
#

I already answered most (the cracker extractor), as for least, uuh probably white coconuts
it also only has 300 udls but it's literally 5 seconds of code

inner harbor
#

hmm how hard would it be to make a prismatic slime egg?

#

well, hatch a prismatic slime from an egg - making the egg itself would be easy. Ooof, am I scope creeping again?

rigid oriole
#

I think its a great idea

inner harbor
#

it would be a special order reward with East Scarp

lucid iron
#

hrm i guess you can make a slime farm animal and then hand animate the prismaticness (spacecore)

#

there is a prismatic valley framework for actual prismatic colors too

inner harbor
#

how does slime farming work?

lucid iron
#

its very hardcoded

inner harbor
#

You can spawn prismatic slimes with FTM too. I've done that

lucid iron
#

i dont think u can breed a prismatic slime

inner harbor
#

I have a special order where Luma demands you bring her slime eggs - either 10, 25 or 50 depending on whether you barter her down.

calm nebula
#

Surprisingly annoying is my verdict

inner harbor
#

And I need a good reward for it

#

so the best bet would be to mock it up as a farm animal and make a "fake" one?

#

or steal your mod?

lucid iron
#

yea i like farm animals u can toss em

#

maybe its a prismatic slime cat

inner harbor
#

maybe I'll just have her give you an apple. Like "here's your awesome reward"

#

(she's not the most hinged Junimo)

lucid iron
#

behold the vessel of my fellow junimo

inner harbor
#

honestly, it'll be hilarious if someone competes the 50 egg request. (She can be bartered down to 10)

#

A jar of slime mayonnaise

#

honestly I kinda like the icea of her just giving you some random relatively worthless item too.

inner harbor
calm nebula
#

Very broken, sadly

inner harbor
#

I need to learn C#. Lol. There is a course...

calm nebula
#

Still love the idea. You're free to take it

brittle pasture
#

just need to fix the transpiler on DayUpdate right

#

well I already have custom slime incubators stuff

inner harbor
#

Thank you, when I learn C# I'll fix it. Heck, if I knew C# (With any level of confidence) I'd fix all your mods that I've used as well. But that day is not today. And I don't think a 14 hour split course will get me to the level required.

#

atm I"m just gonna have her give you random junk for lols.

manic shoal
#

I also need to learn C#. I started the course, but I've been distracted by other (more fun) modding stuff.

inner harbor
#

actually, maybe a rare seed

brittle pasture
#

maybe I can just toss it into EMC

lucid iron
#

whats ur number 1 atra mod that needs updooting

uncut viper
#

atracore

inner harbor
#

for me it's Ginger Island Mainland Fixes.

#

cos I freaking loved that mod

calm nebula
manic shoal
inner harbor
#

(but I think it needed atracore)

lucid iron
#

atravita++ 26 coming out in near future

inner harbor
#

that works amillionand1! For 10 you get a shiny red apple.

#

heck full 50 she could give you a stardrop

#

is giving stardrops in mods ill advised?

lucid iron
#

idk i think its a lil hardcoded

#

fakeable probably

calm nebula
#

It's perfectly fine to except the fact that it might eat the active object

#

Actually I think it's fine, the willy letter does iirc

inner harbor
#

pretty sure you can gift it. Hmm, aside from the potential eating of active objects.

lucid iron
#

50 stardrop tea

inner harbor
#

it was more "how OP do we want Farmer?" I think Boarding House used to give you one.

royal stump
#

I think FTM can safely spawn those, but it's been years and versions since I tested SDVpufferthink

inner harbor
#

It can and I have Esca

latent mauve
#

This made me think of making "stardroplets" as ingredients for the Stardrop recipes (cooking Stardrop tea), though I believe someone already made a mod with 'Stardrop'-based recipes.

inner harbor
#

MAybe I will go stardrop teas

#

and a bright shiny red apple for 10 slimes

#

I shoulra let you barter her down to 1.

uncut viper
#

you can give stardrops probably but if they work they will cause a bit of wonkiness

calm nebula
#

She takes money from you if you do that

uncut viper
#

bc the achievement that checks if you found ALL of them actually short circuits and returns true if you have over 508 s tamina

#

regardless of how many drops you actually found

#

also, they wont show on the skills page, bc thats hardcoded to the specific mail flags for the vanilla drops

#

the former can cause the steam achievement to be granted early and also affect perfection

inner harbor
#

Ill stick to tea I think

#

trying to see how many slimes I can add to an event. Suspect 50 might lag it.

brittle pasture
calm nebula
#

Yay!

inner harbor
#

EMC is?

brittle pasture
#

elsewhere, mongoose cries

#

Extra Machine Config

inner harbor
#

oh I have that one!

#

so the egg isn't part of it currently?

#

but I can add an egg?

#

(conditionally and optionally)

brittle pasture
#

sure, it's all CP

inner harbor
#

I don't want anymore concrete requirements unless I absolutely need them

#

but cool bonuses for peopel with extra mods installed is fun

#

Now I want to see if the slimes all attack the farmer

#

(if so, I"ll add an NPC no pass tile and see if that helps in a cut scene)

#

hmmm can you lose health in a heart event?

#

okay it seems not

royal stump
#

I'm pretty sure hits and such don't work in events, since that's why monsters don't work right in active festivals

inner harbor
golden basin
#

You can use spacecore to damage the farmer in events

inner harbor
#

I don't actually want to in this one! DEcidedlyHuman adding the slime code for events but warned they'd exhibit normal slime behaviour

golden basin
#

I have used it often to hurt the farmer: )

inner harbor
#

that's 25 slimes. Now to add another 25. See if it crashes

#

I think I need a few more blue slimes

brittle pasture
lucid iron
#

35 damage

#

he evaporated you

brittle pasture
#

its power is too strong

lucid iron
#

he got the pride month buff

#

better get this update out b4 end of june

inner harbor
#

are you adding eggs?

brittle pasture
#

(unfortunately prismatic slimes cannot breed more prismatic slimes. though mayhaps I can fix that too with another transpiler)

lucid iron
#

well ofc

#

if something doesnt work just transpiler more until it do

inner harbor
#

okay let me know what they're called and I'll add it into the code

#

for the reward

brittle pasture
inner harbor
#

oh lol, Chu answered me

#

or I thought they had

inner harbor
#

ugh my cat is all over my desk atm

lucid iron
#

EMC is framework so yea you pick up the dependency and then make the egg as required by [docs pending]

inner harbor
#

okay so 50 slime looks pretty unhinged. And whether farmer would walk into a room filled with that many slimes, I dunno.

#

I wonder if NPC blocking will keep farmer protected

lucid iron
#

slime charmer ring should still work right

inner harbor
#

oh you don't get hurt, it's just a bit insane to imagine a farmer walking into a room with that many slimes.

#

I've also seen NPC barriers break the farmer in cutscenesso this is something I need to test thoroughly

inner harbor
#

dang NPC barrier didn't brek farmer but it didn't stop slimes either

#

maybe they can just run outside

brittle pasture
lucid iron
#

i see you learned your lesson

calm nebula
#

Cutie

brittle pasture
#

also, poll: these hatched prismatic slimes will spawn prismatic jelly when slain. do you:

  1. want it to not happen
  2. want it to happen (and do the work of making prismatic jelly trashable + not get removed on quest end yourself, both of which is doable with edits to Data/Objects and Data/SpecialOrders)
lucid iron
#

1

calm nebula
#

(I went with 2. Mostly)

#

I made it not a quest item and gave it a few extra uses

#

Ie, you could gift it, cook it into prismatic toast

brittle pasture
#

also hmm, strange, according to the code they're only supposed to drop the jelly if the quest is active

brittle pasture
inner harbor
#

Given I added code for a special map patch if you give prismatic jelly to Victoria, I kinda want it to happen but very very rarely.

#

(since I discovered you can gift it if the special order is not active)

#

ie: if you spawn it in

#

could you make it so that the jelly only spawns as loot once you've completed the special order?

#

so you cannot cheat the special order

brittle pasture
#

sure, I can add a global knob for "jelly spawn chance from hatched prismatic jellies" which you can edit with CP when flags

daring skiff
#

Changing the color of certain light sources is probably something that should be written via Harmony, right?

#

Looking in Object.cs, see the light source code. Probably understand it.

lucid iron
#

naw u dont need to just make the light source

#

what exactly are you trying to do?

daring skiff
#

I was wondering how difficult it would be to change the color of the campfire.

lucid iron
#

the placable version that you can cook on?

daring skiff
#

That's the one, yeah.

#

There's also Linus's which is a separate thing.

lucid iron
#

linus' is just map light right NotteThink

daring skiff
#

It might be different because it doesn't look like the other lights.

#

Or the campfire is this.

harsh bobcat
#

Incidentally, how would I know what changes smapi does to the game? Turns out something that I made only works multiplayer if both players are on vanilla or if both players are on smapi - one vanilla and one smapi player makes it not work (triggeractioncommands and mail flag)

lucid iron
#

ok so 2 ways here

  1. harmony transpile Object.placementAction (terrible)
  2. when player enter location, search for a Torch object with id 278 and alter it's lightSource, additionally, hook GameLocation.objects.OnValueAdded
daring skiff
#

Thanks for saving me from butchering innocent code.

lucid iron
#

i guess u can also use the smapi event here

#

ObjectListChanged

#

this will let you detect if a Torch object with id 278 got added

#

hm guess u have to actually check for context tag campfire_item

#

but only 278 let u cook so

harsh bobcat
#

I uhhh don't know

#

For some reason, mail flags aren't syncing like they should

lucid iron
#

so is one player on the more fast impl while the other is not?

harsh bobcat
#

A smapi client with literally zero mods and a vanilla client will cause unexpected behavior

#

while two smapi clients or two vanilla clients will provide expected behavior

#

(and unexpected behavior, to be clear, is that some mail is successfully sent [mail that is meant to show up in the inbox but not read] while other mail will not be [mail that is sent to the received folder])

lucid iron
#

interesting, i wonder if the netcode stuff got jiggled just enough because smapi hooked various events

#

fwiw smapi itself doesn't use harmony (it bundles it for mods to use)

daring skiff
#

You got me on the right path, chu. Thanks again for all the help you've given me.

twin wadi
#

why do i start so many projects when i have so many unfinished? like im making characters and i just made a new character when my other characters aren't even done yet lol

fading walrus
#

you got modder zoomies

#

sit down and make a to-do list and see if that helps

soft yew
#

out of curiousity- what is the map editing tool for like making new farm maps? :3

lucid iron
#

Tiled

#

[[modding:maps]]

lucid iron
#

game accepts tmx or tbin

soft yew
#

like- if i make something- im gonna essentially have to learn from the ground up 😅

#

the last time i made any sort of mod- was back in the very early days of CP 😅

#

pfft- i love this bit in the info about tilesets- "They are confusingly named"

lucid iron
#

so the recommendation is, make a copy of a existing vanilla farm map, and tweak it until its all nice Dokkan

soft yew
#

uh- what about if id wanna make a new varient map?

#

like one to choose at the start- that doesnt overwrite any?

lucid iron
#

you still have to do this part of making a tmx

#

but after that you load it a bit differently

soft yew
#

alright

#

i figure- its good to have as a base to work from regardless ^^

#

i remember waaaaaay back with harvest moon back on the snes- using map editors on the rom to make custom farms 😅

lucid iron
#

honestly sdv tools are a lot easier to use than romhack stuff

soft yew
#

yeah-

#

and i was like, so young back then- thisll be easy XD

#

(just be more of a time sink than anything now)

lucid iron
#

but anyways for additional farm setup, vanilla has an example (meadowlands)

#

u can ofc look at how farm mods are made in general

soft yew
#

mhms

#

im kinda inspired by the new miner's retreat player home-

lucid iron
#

cave farm Dokkan

soft yew
#

and was hoping to figure out enough of making maps- to make a cave themed farm :3

#

but ofc- id have to learn how to utilize other creators tilesets for assets and such as i learn it and set them as requirements on it ^^

lucid iron
#

well you can start a bit smaller first

#

make a custom greenhouse Bolb

#

all u really need to do for those is a Load over Maps/Greenhouse

#

the basics r the same anyhow

twin wadi
#

um sorry eng isn't my 1st language, so im not 100% sure but do you say "clothes store"? clothes shop? fashion store?

twin wadi
soft yew
#

am glad to see theres a linux version of tiled ^^ (im very much considering making the shift over to it when i build a new pc)

lucid iron
twin wadi
#

thanks!

soft yew
#

fully unrelated to making maps and such- i keep finding it odd that more content arounda Joja isnt made- like so much story stuff could be done around it

#

(ive had ideas for it in the past, but they elude me atm 😅 )

#

so like for loading a map in via CP, which action would be suitble for like experimenting with say the greenhouse map? the 'EditMap' action?

#

as the wiki says the 'Load' action really messes with compatibility of other mods =/

brittle pasture
inner harbor
#

nifty!

livid jolt
#

Guys I want resized white_chicken PNG 64x112 to 16 x16 to make a pet chicken .. I'm with Photoshop, and I should create a vertical or horizontal page on Photoshop ?

inner harbor
#

man making a slime egg prismatic like a shard instead of changing colors was not easy

brittle pasture
#

do you have questions regarding the emc functionality or is that unrelated SDVpufferlurk

#

oh I realized you're talking about spriting it probably

brave fable
#

or instead use Ctrl+Shift+N to make a new blank layer to work on if you're drawing a whole new batch of chicken sprites, rather than editing the original

livid jolt
#

thanks

brave fable
#

opening the file is the easy part, drawing a new chicken is the hard part hahah

#

if you're just changing the colour you can do it simple enough, one colour at a time, with the fill bucket tool (G) and roughly these settings (note anti-aliasing/smoothing and contiguous pixel fill are disabled)

#

PS doesn't really do simple palette swapping since it's not a sprite art program, but if you're familiar with the tools you can get a decent approximation using the various Adjustments options

livid jolt
#

what program u sugest for sprite art

brave fable
#

i do actually use PS for everything hahah

#

it's just not necessarily built for it

livid jolt
#

cat.png or dog.png in Photoshop he exact dimensions (128x288) and cut out each 16x16 chicken sprite from your White Chicken.png dam

fading walrus
#

I use aseprite, but people also use libresprite (free) and Krita

brave fable
#

i'd also happily recommend PaintDotNet but it's more PS-lite than an actual sprite art program

fading walrus
#

(Krita is not built for sprite art, though)

livid jolt
#

I want to create a chicken like a pet for using a nice hats

fading walrus
#

Oh yeah, I used piskel on my browser at one point

rough lintel
#

i shall make the usual “aseprite is fwee is you compile it 🤓 “ comment

livid jolt
#

because cat and dog is much larger them a chicken I believe gonna be a pain change ever sprite

lucid iron
#

u can define a new set of pet data actually

#

for chickens

livid jolt
#

how

lucid iron
#

hrm i might be wrong actually, not clear if you get to set width and height here

livid jolt
brave fable
#

yep, unfortunately you can't seem to change the size of the pet sprites. the animation frame data simply takes a frame index instead of a source area, and there's no width/height settings as far as i can tell

livid jolt
#

yap

#

should I begin from left side?

lucid iron
#

i recommend turning on grids if u have that

#

idk ps well

livid jolt
#

ok

lucid iron
#

the grid size need to be 32x32

brave fable
#

in that case, even though there's no tool for it you can just use Ctrl+Alt+C to open the Canvas Size dialogue and set the chicken.png from 64x112 to 128x224, and move each frame over to fill the new space

#

probably set the anchor to top-left

livid jolt
#

nice tip blue

#

u are very good

#

i never used PS for this normal jsut for logos and change photographs ^^

brave fable
#

i'd just drag each column along by 16px and then move them all over by 8px to centre them, and then repeat for each row

livid jolt
#

dam

brave fable
#

you can hold shift while moving to lock the axis btw

livid jolt
#

i need more them 2000 dpi on mouse so slow LUL gonna try 3400

brave fable
#

sadly i think this is actually the quickest way to do it hahah

#

side note, you'll want to put a shadow beneath every chicken sprite, since pets have their shadow baked into the sprite and farmanimals don't

livid jolt
#

I never thought on shadows LUL

half tangle
#

@ivory plume My upcoming mod (an in game navigation system) gets stop data from Central Station using
StaticHelper.GameContent.Load<Dictionary<string, CentralStationStopModel>>($"Mods/Pathoschild.CentralStation/Stops");
which handles CS's default stops as well as stops added by mods using content packs. However with the new adaptation to allow CS to handle Bus Locations and Train Station packs I noticed that those Stops don't seem to be part of the asset I'm loading. Looking through your code I suspect that API-added stops are likewise absent from the asset, but I haven't tested that. In particular, it looks like this method https://github.com/Pathoschild/StardewMods/blob/develop/CentralStation/Framework/StopManager.cs#L54 gets all stops to then display to a player in game while the Content asset only includes the first set (the ones managed by yourStopManager's ContentManager).

If it's not too much trouble, would you be willing to add those other Stops to your Content asset? I suspect this is a small use case, tbh, but thought I'd bring it up.

round ermine
#

Hm, is there a way to apply and/or trigger a map patch as part of an event?

I have a map patch that gets applied after an event is seen currently, but I'd like to change the way that map looks within the event after a certain part without having to use a transition to pre-baked temporary map for immersion reasons, as there are a number of other mods that may also affect how that particular map looks.

lucid iron
#

can u TAS it

round ermine
#

I'm assuming that's... temporaryAnimatedSprite? Didn't know that was a thing that could affect the map. think

lucid iron
#

well its in an event right

#

you may display a temporaryAnimatedSprite "preview" of the patch perhaps

#

i dont really know what you are imaginging so it helps if u give more context

round ermine
#

Essentially, I have an event where a character builds a shop with the farmer. At the start of the event, the map has one patch applied that makes things look one way, and then after the event a different patch is applied to make it look another way.

I'd like to be able to apply a different map patch within the event to show that changeover process, if that makes sense.

lucid iron
#

i dont think you can reload a map in the middle of event yea, so you will have to fake it with visual tricks here (such as temp anim sprite ofc)

ivory plume
lucid iron
#

im also not sure how you can instantly apply the map patch just after an event blobcatgooglyblep

latent mauve
#

At the very least, they'd probably need to exit and re-enter the location.

uncut viper
#

BETAS PatchUpdate

latent mauve
#

(easiest way is to just have the event say something like "I'll have this set up tomorrow")

#

Special Order Board construction gets around this by forcing you to see the scene as you enter the map where the special order board exists, I think?

#

I could be wrong

lucid iron
#

i guess u can use mmap TAS for this shit too

latent mauve
#

(I would honestly look at the special order board construction to see how that works)

lucid iron
#

make it go away after event kyuuchan_run

round ermine
#

It's actually applied at the start of day before the event based on a character's heart level, and the event triggers upon entering the map when you reach that heart level, so you never see the state of the map before the event is over, so that part's actually fine. UGiggle

lucid iron
#

u good then just use an event TAS DokkanStare

#

u can perhaps have fun and do a grand unveiling kinda animation

lucid iron
#

so the map is already with building but u use some event stuff to setup ribbons or whatever

round ermine
#

oop, forgot to turn off ping, apologies

latent mauve
#

it's all good

twin wadi
#

how do you do the effect where the skateboard spins away in sam's six heart event? https://www.youtube.com/watch?v=vtDH-qXzg5k

All of Sam's heart events in Stardew Valley 1.5. It includes the heart 14 event. Chapters below!

00:00 Two Hearts Event
01:22 Three Hearts Event
03:18 Four Hearts Event
04:22 Six Hearts Event
05:42 Eight Hearts Event
08:34 Ten Hearts Event
10:50 Fourteen Heatts Event

Thanks for watching! Please leave a like and subscribe.

stardew valley, star...

▶ Play video
latent mauve
#

specificTemporarySprite skateboardFly

#

From the skateboarding in town event

twin wadi
#

thank you!

latent mauve
#

most (if not all) of the specificTemporarySprites are very hardcoded

half tangle
# ivory plume Hi! The stops come from three sources: (a) the data asset, (b) the C# mod API, a...

Yep, gotcha. And, yeah, an API method would be great! I would request that along with target location and tile that it also include the displayed destination name as well as the gold cost (i.e the data that is in your Content asset) so that my UI can tell the player about those things. Since I already have the various condition checks written on my end, any filtering you make available would just be a welcome bonus to simplify my code and make it more likely that my data reflects what is in game accurately, so I would appreciate that as well.

vernal crest
#

Dangit, I knew Pathos was going to be doing another update run when I saw those newer update numbers in the changelogs. I should've waited! I updated yesterday and now they all have updates again.

inner harbor
#

@brittle pasture to clarify: NOTE: Despite being a field on Data/Machines, it will globally affect every prismatic slime, regardless of from which incubator they spawn. does this mean if I adjust the data/machines to make the slimes not drop prismatic jelly it will affect the one that spawns in the mine too so if I set it to 0, then it'll screw up the specialorder completion?

brittle pasture
#

it wont screw up the special order

inner harbor
#

okay good. Cos I don't want people cheating for the special order.

#

also my egg is bloody ugly but it turns out making prismatic sprites is hard!

#

... and I can just do it like this? "Lemurkat.EastScarp_Prismatic_Slime_Egg": { "Name": "Lemurkat.EastScarp_Prismatic_Slime_Egg", "DisplayName": "{{i18n:object.prismaticslimeegg.name}}", "Description": "{{i18n:object.prismaticslimeegg.description}}", "Type": "Basic", "Category": 0, "IsDrink": false, "Price": 7500, "Texture": "Mods\\Lemurkat.EastScarp\\esobjects", "SpriteIndex": 62, "Edibility": -300, "ExcludeFromShippingCollection": true, "ContextTags": [ "color_prismatic", "slime_egg_item" ], "CustomFields": { "selph.ExtraMachineConfig.SlimeColorToHatch": "prismatic" } },

#

if Extra Machine Config isn't installed, will it break if there's something in CustomFields that it doesn't understand?

uncut viper
#

CustomFields are just strings, if nothing reads em then nothin will happen

#

you can put whatever you want in there

brittle pasture
#

also it should be "Prismatic" (capital P)
but yep what button said

inner harbor
#

coolio, I don't need to add when conditions on there then

#

awesome, you're wicked, thanks both of you

#

Is it safe for me to add a Custom Field to the Slime Incubator or should I be using append or something?

#

(in case someone else has added something)

brittle pasture
#

target field CustomFields is fine

#

it's a global config so there can be conflicts

inner harbor
#
            "LogName": "Prismatic Slime code",
            "Action": "EditData",
            "Target": "Data/Machines",
            "When": {
                "HasFlag |Contains=WizardReward": false
            },
            "TargetField": [
                "(BC)156",
            ],
            "Entries": {
                "CustomFields": {
                    "selph.ExtraMachineConfig.HatchedPrismaticJellyChance": 0.0000001
                }
            }
        },```
brittle pasture
#

move CustomFields into TargetField as well

inner harbor
#

(once WizardReward is true you have a much greater chance)

#

I wasn't sure about that

brittle pasture
#

then just set the keyval

#

you're good, that what I do in my test pack

ivory plume
inner harbor
#
            "LogName": "Prismatic Slime code",
            "Action": "EditData",
            "Target": "Data/Machines",
            "When": {
                "HasFlag |Contains=WizardReward": true
            },
            "TargetField": [
                "(BC)156",
                "CustomFields"
            ],
            "Entries": {
                "selph.ExtraMachineConfig.HatchedPrismaticJellyChance": 0.1
            }
        },
#

don't want to make the special order too easy

#

Luma's going to mail you the egg so I can still have her give you an apple

#

(Her roommate proposal item I've now decided it going to be a golden apple. She may send you on a quest to get it)

#

so will removing the "quest" from the prismatic jelly stop it being removed automatically?

brittle pasture
#

no, it's in the special order data

#

something like ItemToRemoveOnEnd

#

null it out and you're good

inner harbor
#

ah cool thanks - I belief outside of the special order time you can also gift it, but maybe not sell? I spawned one in and gave it to Victoria once to check this

brittle pasture
#

Yeah I think the "unsellable" part is from the Quest type

#

you can change to Basic and I think it would make it sellable while keeping the quest the same

half tangle
# ivory plume Here's a build which adds a `GetAvailableStops` API method; see [updated API ins...

At a glance at the API, I don't think it quite fits. Per the remarks in your comments I see that your condition check is targeted only at the player's current location. As a navigation system I need to check conditions that are like "if the player were in this location (but may or may not be currently) then is this destination available?" That allows me to give directions from A to B to C when "B to C" is only available if the player is in B. I do this on my end by modifying GSQs that contain "Here" with the relevant location (B in that example). Can you modify this to not check the conditions beforehand and let me run those GSQs with my modifications? I only check them one time each time a player requests directions, so in my case this isn't much overhead at all.

#

(Looking through your implementation, I realize this adds a bit of overhead on your end)

inner harbor
#

Content Patcher has Tokens for "HasActiveQuest" but not "HasActiveSpecialOrder"?

brittle pasture
#

doesnt seem so hmm, could be a good feature request though
you can workaround it probably?

#

actually, hmm nvm

inner harbor
#

there's a GSQ condition

#

which may be why it was never added?

#

can definitely make changes afterwards.

#

okay time to test

soft granite
#

how frequently does "random" get generated in a content.json?

vernal crest
#

Random tokens rechoose when they're evaluated, generally when a new day starts. The randomness is seeded with the game seed + in-game date + input string, so reloading the save won't change which choices were made.

true pendant
#

Hi everyone, I have a problem I can't get Hyper Speed-Gro from bones, I get Basic Fertilizer

vernal crest
true pendant
vernal crest
#

I'm assuming that's machine output rules and needing to move entries

brittle pasture
#

two triggers leading to two outputs basically

#

note that with 100 walnuts you'll get a 50/50 chance of either basic or hyper. will that be what you want?

true pendant
brittle pasture
#

so you have two entries in OutputRules with identical triggers, and machine rules go from top to bottom so it will only ever pick the top one

#

you need to merge them, OutputItems is a list that can have multiple entries

true pendant
#

I've been struggling with this for a few hours, I don't know why I didn't think to specify the Condition in the OutputItem

#

Thanks!

brittle pasture
#

yep looks good
one more thing, if you want to always give hyper speed gro if the condition is satisfied you can move it to the top and set UseFirstValidOutput to true

#

(double check that that's the right name, I'm doing this on my bed inbetween browing deltarune theories SDVpuffersquee )

half tangle
true pendant
soft granite
#

If I'm modifying a dialogue file, what would you think is the likely culprit if a {{Random: var1, var2, var3}} in a line gets output as { in the box?

vernal crest
#

Are you using EditData or Load?

vernal crest
soft granite
vernal crest
soft granite
#

Unfortunately, not right now. I'm actually away from computer and thinking about bugs in my code while doing something else

vernal crest
#

Ah, I see.

ivory plume
steel plaza
#

how do i make it so my custom building can be painted?

ivory plume
soft granite
#

debug speech Penny 0Don't you think the house would look nicer if it was {{random:red, blue, green}} $h

vernal crest
vernal crest
#

It works in patch parse though

soft granite
vernal crest
soft granite
lucid mulch
#

the contents of i18n can't have cp tokens, only placeholders (that use a subset of cp syntax) which you can pass into the i18n token

vernal crest
half tangle
inner harbor
#

Does Content Patcher not recoognise Meadowlands farm? : this "FarmType": "Meadowlands" doesn't seem to work.

brave fable
#

you want MeadowlandsFarm SDVpufferthumbsup

inner harbor
#

Thanks! The other tokens don't have "farm" attached to the name and that one isn't even listed on Github

brave fable
#

i'm not sure if it's meant to be, given it's only found in Data/AdditionalFarms

inner harbor
#

ah okay. I thought it just listed vanilla farms

brave fable
#

mm, i'm not sure what i'd do with it myself. it makes sense to add it to the list imo

inner harbor
#

Dangit its clearly patching but its not working.

#

Like im trying to overwrite a map warp and its jusf breaking the warp altogether.

#

wait I effed that up mightily, where on earth did I get 0, 7 from?

#

its 2, 9

#

Debug mode is giving me incorrect coordinates

steel plaza
#

the skins thing is working tho

#

just not showing the texture of the buildings

distant radish
#

Sorry for the late reply. Actually, you reminded me to delete it. I don't know if it's me or SkyFeed being useless, but it's very hard to get it to work (I tried to add you and you didn't show up in the actual feed). It's better if someone else creates it and just uses a hashtag to filter posts out. I won't do it because I rarely go into Bluesky or any socials anymore. Feel free to create one yourself if you're active on the platform and up to it SDVpufferheart

drowsy pewter
lucid mulch
primal mauve
#

ive only ever made like 5 mods and they were all for different games but i got an idea for this one so ill wing it

rigid musk
#

Yeah! Make the thing!

#

It's great when people make things :)

primal mauve
#

i want to add guns :D

rigid musk
#

Horrifying! Go for it!

primal mauve
#

and the gotoro empire and turn it into a war RPG

rigid musk
#

Sounds like a lot of C# and prayers

primal mauve
#

guns are optional

#

could just use swords

livid jolt
#

C# shouldn't exist

primal mauve
#

but kent makes me think theres guns

rigid musk
#

Depending on what aspects of an RPG you want you might need C# for the more complex bits- then again you could definitely accomplish a lot through frameworks and content patcher features

rigid musk
livid jolt
#

Same ..Kent needs a mini gun to stress out

rigid musk
#

You know a lotta games wouldn't exist without C# right

livid jolt
#

In fact they could exist just with c++

rigid musk
#

Different languages for different purposes, I'm sure there's a reason why people prefer to use C# over C++

livid jolt
#

But c++ is very hard

lucid mulch
#

The world would be a better place without C++

livid jolt
#

Idk why

rigid musk
#

You dont know why C++ is hard or why the world would be better without it?

livid jolt
#

Yap

rigid musk
#

That did not answer my question catpeek

livid jolt
#

The word be better

rigid musk
#

Oh well I can't answer that one

livid jolt
#

I can't figure out

rigid musk
#

I'm a newbie programmer at best, just learning the basics of C#, so I wouldn't know in the slightest

livid jolt
#

But u get the point each language gets his own purpose

lucid mulch
#

in $CURRENT_YEAR anything done in C++ can be done in a better language instead.
Memory safety has rust, raw performance was done in raw C anyway, and if they are boring there is Zig and Go

livid jolt
#

Good point sin

lucid mulch
#

the only reason people use C++ is because theres existing C++ code, no one does greenfields new C++ projects

#

Linux kernel is mostly C, with a sprinkle of rust, avoiding the plague of C++ entirely

livid jolt
#

Don't forget c++ still solid in secure

#

But yes any program can do that these Days

rigid musk
#

[Please know I'm nodding along to this as if I know literally anything that's being said here, but I do not. It's all very interesting though]

lucid mulch
#

though a game would not count as something important

livid jolt
#

Siz the only thing the government's under is how cheap it's gonna be to create something

lucid mulch
#

if that was the case, they wouldn't be advocating for rewrite everything important

#

would be cheaper in the long term due to less costs in analyzing whether its rugged and safe enough, but not in the short-medium term

livid jolt
#

Believe me writing is one thing and reality is other

#

How many companies and even government institutions got hacked

#

Just because they don't want spent more 5k in better servers

lucid mulch
#

many, mostly due to memory corruption vulnerabilities caused by C/C++.
the remainder are mostly social engineering attacks

livid jolt
#

How can be possible in 2025 people using java programs on the web for documents

lucid mulch
#

same reason most institutions still use mainframe

livid jolt
#

I don't get it too

lucid mulch
#

if it ain't broke, don't fix it.

livid jolt
#

Of co

#

1st time I used c# was coding XHTML Thank god for not using it anymore was painless to coding that crap

fathom rapids
#

We learned c++ as our first coding language in uni. "Implement your own data structure" type stuff.

#

I kinda miss it. Was a lot more fun than c#, even if it would be a pain to code anything larger than those educational toys in it lol

livid jolt
#

Wow that stuff to dam

fathom rapids
#

I mean hello world was also in c++ we didn't start with data structures XD

livid jolt
#

I see

#

I think 🤔 I did something in turbo pascal at the time I was studying

fathom rapids
#

Also for the first couple months we wrote programs on paper by hand. Not joking. They would be like 5-10 lines long and we would be graded on, like, not forgetting the ;

livid jolt
#

Still thing Pascal is a useless program but fun to learn at the time

fathom rapids
#

I think we used that in high school

#

I have never used it since

livid jolt
#

Your teachers do the same like they did to us dev by pencil and paper

fathom rapids
#

Tonus dev?

livid jolt
#

Sorry

#

To us

fathom rapids
#

👍

livid jolt
#

But at least we learn no YouTube no IA helping you

#

Just library and books 📚

fathom rapids
#

Yeah I think it was good. Really drilled the basics into us

#

Heh. We learned with google

#

Stack overflow-fu

#

Our program was a bit of a mess so one year we had a project in java before the semester where we would actually learn java

#

Now /that/ was giving us skillz

livid jolt
#

True

#

Java and JavaScript can be rough sometimes

fathom rapids
#

I don't remember much about java, haven't used it... just about since. Javascript........ yeah

#

I remember java is c-like in syntax and like c# but cross platform. That's about it

#

"I think it was normal" type thing

livid jolt
#

Python is so easy compare what we have learned back in those days

fathom rapids
#

Still don't know any python... XD

#

Should probably learn

livid jolt
#

It's funny and special for the frontend guy

#

I need learn F

fading walrus
steep knot
#

So, hello rooAwwPeekHi I hope I'm on the right channel for that. I was preparing myself to play my first modded playthrough and one mod I was planning to use is Farmer 2.0 ESWF. So I used Poltergeister and Jazzybee portrait creator for my farmer's portraits and I was trying to make my outfits with fashion sense content pack but I didn't manage to find outfits that fits my farmer's appearance (and I know that my stupid brain will not be satisfied if my outfit doesn't match with my portrait). So I thought "Maybe I could create my own fashion sense content pack for my outfits ?". But I'm still a bit lost before starting. I've looked at Floogen documentation on Github and I think I got the base but it's more for the artistic part that I'm still lost. Do I need to respect a certain size for the sprites ? Or make spritesheets ?
Sorry, I'm new to this so I don't really know what to do. Thanks in advance for any help provided

fading walrus
ocean sailBOT
#

Follow this guide to unpack the game's content files in order to see and explore how the game data is structured.
It's helpful when making your own mods, or just to learn about how the game works!

steep knot
#

Thanks. I will look into it KleeHeart

steel plaza
ocean sailBOT
#

@steel plaza You leveled up to Cowpoke. You can now speak in our voice channels and share images in all channels!

lucid iron
#

assets/NeighborCabin

lucid mulch
#

(or internalassetkey)

lucid iron
#

If the intention to use the vanilla cabin textures then change the Texture field

steel plaza
#

can you explain?

devout otter
# steel plaza i did it tho

Looking at your json, for example, at this part, you call for the asset named assets/NeigborCabin for your Texture. { "Id": "{{ModId}}_NeighborCabin", "Name": "Neigbor Cabin", "NameForGeneralType": null, "Description": "A cabin made for your farm", "Texture": "assets/NeighborCabin", "Condition": null, "BuildDays": null, "BuildCost": null, "BuildMaterials": null, "ShowAsSeparateConstructionEntry": false, "Metadata": { "ChimneyPosition": "61 11" } },

#

However, here the asset you Load is not named assets/NeigborCabin, but instead Buildings/{{ModId}}_FarmCabin { "Action": "Load", "Target": "Buildings/{{ModId}}_FarmCabin", "FromFile": "assets/Buildings/NeighborCabin.png" },

#

So either you need to make your Texture field on your building skin calls for Buildings/{{ModId}}_FarmCabin, or you need to Target assets/NeighborCabin as your asset load.

steel plaza
#

so yeah this is the version now:
{
"Action": "Load",
"Target": "Buildings/{{ModId}}_TrailerCabin",
"FromFile": "assets/Buildings/TrailerCabin.png"
},

#

also on the texture, i did this: "Texture": "assets/Buildings/[Cabin Name]"

lucid iron
#

Well you gotta put whatever is in Target into Texture

steel plaza
#

give me an example

lucid iron
#

Once you loaded something you need to use Target to refer to it

steel plaza
lucid iron
#

There are many examples in the guide

#

Click [Expand]

#

For your case the first example shows loading the texture and then putting the loaded Target into the building's Texture field

devout otter
# steel plaza give me an example

Your Texture field here. { "Id": "{{ModId}}_NeighborCabin", "Name": "Neigbor Cabin", "NameForGeneralType": null, "Description": "A cabin made for your farm", "Texture": "assets/NeighborCabin", "Condition": null, "BuildDays": null, "BuildCost": null, "BuildMaterials": null, "ShowAsSeparateConstructionEntry": false, "Metadata": { "ChimneyPosition": "61 11" } },

#

And your Target field here. { "Action": "Load", "Target": "Buildings/{{ModId}}_FarmCabin", "FromFile": "assets/Buildings/NeighborCabin.png" },

#

Must be exactly the same.

devout otter
#

Either both must be Buildings/{{ModId}}_TrailerCabin, or both must be assets/Buildings/[Cabin Name]. Pick one.

steel plaza
#

lol

devout otter
#

You can't exclusively Load the same Target asset more than once. I see that you have two of this. { "Action": "Load", "Target": "{{ModId}}_Stone Cabin", "FromFile": "assets/Buildings/Stone Cabin.png" },

#

I assume the lower one is meant to be Beach Cabin.

mortal goblet
#

Can i add an bundle in my new map by using CP?SDVpufferheart

hard fern
#

Not just cp alone

vernal crest
cerulean shadow
#

Does Stardew Valley have any support for making texture packs like, say Terraria? (Or just, is there a method that is fairly manageable for artists to implement their own sprites?)

calm nebula
#

!cp

ocean sailBOT
cerulean shadow
#

Ohhh awesome, thank you.

vernal crest
ivory plume
# steel plaza also, i tested my mod but the building is not showing in the Shop Menu and in th...
  1. Your various patches target {{ModId}}_FarmCabin, but you're actually setting the ID to {{ModId}}_LogCabin instead:
    "{{ModId}}_FarmCabin": {
        "ID": "{{ModId}}_LogCabin",
    
  2. You can simplify a lot by removing the default values.

See updated code with those fixes. If it still doesn't appear in the shop after those changes, run patch summary in the SMAPI console and check for any errors or warnings. If you can't find the issue, post a link to your SMAPI log here and we can take a look.

unique sigil
chrome pollen
#

is there a mod for server that would store all chat logs in a file

golden basin
#

I was curious is there a way to make custom fonts in stardew using content patcher?

ivory plume
golden basin
#

I'm wanting to make a language similar to the dwarfs text that changes automatically once you learn it?

ivory plume
golden basin
#

Oooo thank you

ivory plume
#

Though you'll need a C# mod to make the game actually use the font.

golden basin
#

Ah dang hmm

#

I don't know C# at all, is it a hard thing to program?

#

I wonder if anyone would be willing to take on the idea with me?

ivory plume
#

I don't think it would be super difficult, but I wouldn't recommend it as a first C# mod; that'd probably be framework mod territory.

golden basin
#

Yeah I guess I could put the text in with meep and have translations unlock

tribal ore
#

I've got a token mostly working, but would like it to update more frequently than just on day start. Specifically, I was wondering if there was an event hook for when player friendship data changes?

#

OnLocation and OnTime changed seem a little excessive

uncut viper
#

you don't control that

calm nebula
#

What do you want to do?

uncut viper
#

Content patcher does, and by extension the CP mod author

calm nebula
#

(The answer is yes - netevents are great...)

#

Oh wait i thought kantrip had their own c#

uncut viper
#

you can check the value whenever but the token itself updating is locked to the update rate CP sets

tribal ore
#

Eh, I have a token that gathers everyone that the player is currently dating. Obviously, that can change in the middle of the day

uncut viper
#

and you don't change the value outside of when CP asks aka UpdateContext

tribal ore
#

How to I force it to update context then?

uncut viper
#

You don't

tribal ore
uncut viper
#

by design

tribal ore
#

Well, darn

uncut viper
#

tokens will update on day start, location change, and time change. That's it

tribal ore
#

If a mod calls the token, though, it will update?

calm nebula
#

No

tribal ore
#

No? So if a patch is applied onlocationchange and checks the token, it will have the same value as the start of the day

latent mauve
#

(this makes me wonder, is this why the wedding is the first thing in the morning, so the spouse tokens always work?)

tribal ore
#

Hm. Alright. It's not a big deal, just means that events based off these tokens would trigger the next day.

uncut viper
#

CP will call that function when it needs to

#

If a patch says to change On location and the value of your token changes between locations, it will update for THAT patch

tribal ore
#

I was just standing in one place testing this

#

Didn't think to move and see what happened

primal root
#

I have a question. Is it possible to create my own Quarry using PIF (Personal Indoor Farm)?

I am not sure how I'll be able to have the ores and gems spawn in the room I created so it can be mined when in-game.

uncut viper
#

also, Kantrip, you'll need to cache your values

#

to ensure that GetValues will never return a different value between update rates

lucid iron
#

I think relationship do have one natively tho

#

But in general GSQ usually get evaluated as needed by C# rather than by CP on edit

urban patrol
#

are followers/companions/whatever they’re called hard coded?

lucid iron
#

Whispers trinkets

#

What are you looking for exactly though

uncut viper
#

idk what followers you mean besides trinkets

#

chus got you covered there though

urban patrol
#

my friend suggested an idea for a custom one. they gave the example of the fairy that follows you around

#

so yeah i guess trinkets

tribal ore
lucid iron
#

Yep that's what trinket tinker is for

uncut viper
#

assuming custom tokens caches correctly too hopefully

lucid iron
tribal ore
urban patrol
#

thank you!

tribal ore
lucid iron
#

Well, i recall there being a player relationship GSQ

uncut viper
#

there is

lucid iron
#

So you might not need to make one for this case

tribal ore
#

The reason I needed a token is for string replacement to make a custom event

#

And it works!

#

So excited that I can walk into the backwoods and the character in the event changes now

lucid iron
#

Yep and that's not within the power of GSQ

#

Bc GSQ is a true/false expression

tribal ore
uncut viper
#

you wouldn't want to do that anyway

tribal ore
#

Now I just need to test to see if the custom action I added works in dialogue

#

I'm 80% of the way through the foundation work for this thing

uncut viper
#

(you can offer a tokenizable string, though)

lucid iron
#

you tested with debug action already yea?

tribal ore
#

Sounds really useful. I don't know all of them yet by heart

lucid iron
#

Yeah u do debug action <your action>

tribal ore
#

Niiiiiice

lucid iron
#

It immediately runs the trigger action given

tribal ore
#

That will save me a lot of time in testing, tysm

lucid iron
#

There's also debug gq for gsq

#

And cp gives you patch parse "string with {{token}}"

tribal ore
#

I knew about gq

#

Anyway, thanks to both of you! Hopefully I can get the code out of the way this weekend and can start writing events

#

I don't remember: do you need the kitchen upgrade before you can propose to an NPC in vanilla?

uncut viper
#

yes

tribal ore
#

I thought so, but the wiki doesn't list it as a requirement. Just the pendant

#

Ah. Mariner only appears if the upgrade is complete. I needed to read more

uncut viper
#

I thought they turned down the pendant too if you didn't have the upgrade anyway

#

even if you got it from another source

latent mauve
#

Makes sense, the house needs to be in the correct state to add the spouse room the very next day in case you propose on the day you buy the pendant

#

And the base level house does not have a marriage variant

uncut viper
#

for vanilla explanations I guess simply saying you need the mariner and the mariner gets locked is good enough

steel plaza
ocean sailBOT
#

Log Info: SMAPI 4.2.1 with SDV 1.6.15 build 24356 on Microsoft Windows 11 Home Single Language, with 20 C# mods and 3 content packs.

flat sluice
#

Hi Pathoschild! (if anyone else wants to answer this for me, feel free to do that)

Sorry if this is inappropriate from me, but I noticed this conversation. I'm sure you don't have much time and that many things might (or, let's be accurate - will) change, but the 1.6.16 SV version has these choose, goto and label commands. I'm solving the same 'problem' as Abagaianye, the problem of quickQuestion not multilinable (thanks Abagaianye for reminding me that it is possible).

By the message I'm responding to, (if I interpret it correctly; probably not) the choose command allows multilining inside the command itself. I looked at the wiki page and tried the 1.6.16 formatting (so then I can just replace the old one with the new one), but I can't find out how can I part it into multiple lines, especially when using i18n.

So, I'm kindly asking - even though it might probably change, could you, please, show me an example of parting the choose command into multiple lines?
Including a link of what I mean and trying to do: https://github.com/DenisSilent/Eleanor/blob/development_UNSTABLE!/[CP] Eleanor/assets/events.json#L266

Thanks in advance!
Denis001 aka StrojvedouciDenis

GitHub

This Github repo is a repo for NPC Eleanor, which is a mod created by StrojvedouciDenis (a.k.a. DenisSilent or Denis001 (at Discord)) for game Stardew Valley. - DenisSilent/Eleanor

ocean sailBOT
#

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

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

lucid iron
gentle rose
#

(btw, I think the wiki says upgrade two, but iirc you can use the marriage debug commands on upgrade 1 at the very least)

uncut viper
#

the debug command wont perform any validation at all

lucid iron
#

Is good to keep this in mind when there is a alpha or whatever though, when we'd get the game's updated content files to look at

flat sluice
gentle rose
#

it doesn't work without upgrade 1 though SDVpufferthinkblob if I'm remembering correctly

#

I'll check in a sec

lucid iron
#

Well then pls await a version u can actually poke around in

uncut viper
#

its possible i spose that theres something else tucked into some npc warp or update function somewhere that says "woah hey hold on a minute pal" if you try but it aint from the marry command as far as i can tell

gentle rose
#

seems likelier I just assumed it wouldn't work when I tried it tbh SDVpuffersquee

uncut viper
#

if it did itd probably trap em in the void anywho and cause some issues

#

i just tested it, you can marry an NPC on day 1, no house upgrades with the debug command

#

as long as you dont mind the console erroring about not being able to find the right kind of spouse room placement or w/e

#

but it wont crash or anything

gentle rose
lucid iron
#

NoU

uncut viper
#

(if i thought itd be used by enough people id give it a shot, but...)

lucid iron
#

I did actually want to have some kinda junimo text thing at one point

#

But then i looked at Dialogue.cs and noped right out

tender bloom
gentle rose
#

no ping on pathos replies for fear he returns and sees me saying stupid shit /lh

uncut viper
#

i think itd be more generally applicable as an "NPC Font Framework" mod than a language mod though