#making-mods-general

1 messages ยท Page 335 of 1

worn coral
#

Or you can declare multiples on the Map itself like in Vanilla (one long string)

idle lantern
#

The two sigils at the bottom. I currently have them on the path layer. I see your window shows object property.

#

Let me try both of those methods

faint ingot
#

Does someone happen to know, if you use the square_x_y schedule entry, does the NPC avoid building tiles within the specified box?

worn coral
#

Yes - the TileData goes on the Back Object layer as it's a TouchAction

lucid iron
#

You can ise AddWarp for this i believe

#

Aka the warp property

#

Did you need it to be magic?

#

Biiiu

worn coral
#

Or you can add it with EditMap directly via CP too

idle lantern
#

I think I'm just too inexperiences. I see that the properties window is for an objects layer, but I can't seem to get anything to populate within my objects layers. I'm doing something incorrectly

#

inexperienced*

lucid iron
#

Gotta create an object first

#

[[modding:maps]]

worn coral
#

It's all good - we all try something for the first time

#

If you open the vanilla Forest map for example you can find all the different TileData objects - you can just copy/paste one of them first and just edit it's properties

#

(I did find the Tiled menu confusing at first as well so this is how I got started with TileData SMCKekLmaoDog )

idle lantern
#

oh thank you! I was trying to find the SVE Wizard basement file to look at, but it's wrapped up in a tbin

worn coral
#

you can enable a tbin plugin in tiled to open those too

#

no need to install anything new

idle lantern
#

Nice, ok!

lucid iron
#

!unpack

ocean sailBOT
#

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

lucid iron
#

If you use stardewxnbhack it'll be tmx

idle lantern
#

I have that. I assumed it was programmed to only work on Stardew Valley base stuff, so I didn't try moving it into the mod folder

#

Assuming gets me every time

uncut viper
#

i dont think it does i think chu thought you were talking about the vanilla basement

#

the other xnb unpacker out there makes em tbins

idle lantern
#

I did try looking there. It was one warp set to the path layer, and one on a different layer

worn coral
#

For the tbins from other mods you need to enable the tbin plugin and then just open them in tiled like tmx

idle lantern
#

I'm going to try this map properties way firs,t and see how it goes. I just need to make the useable portal object to get me there

worn coral
#

for testing?

lucid iron
#

debug warp <your custom location>

worn coral
#

what chu said (but I wanted to check in case you wanted one for your mod in general heh)

idle lantern
#

๐Ÿ˜„ I appreciate both of you!

acoustic compass
#

I've heard from a mod friend that there's currently a weapon framework being made. I'm really curious about that

gentle rose
#

did your mod friend happen to give you any details of who was making it?

acoustic compass
#

Unfortunately no

brittle pasture
#

I thought there already is one (1.6 update of aedenthorn's weapon framework)

acoustic compass
#

OOOO

#

ty! that's what I was looking for

#

Oh Selph! there was a question I wanted to ask you about extra animal config

#

is it possible to make an animal that has things it can dig up seasonally?

brittle pasture
#

sure, don't even need EAC even (well, you need it if you want your animal to dig up different items in one day)

#

animal produce has a Condition field

#

so you add four entries to ProduceItemIds, the first one with LOCATION_SEASON Target Spring for spring, repeat for the other seasons

acoustic compass
#

thank you! really excited to know that's possible!
I wanted to make an animal that digs different kinds of roots/forage depending on the season

urban patrol
#

so there was an issue in one of my heart events, which i've now fixed, but is there a way to 'reset' it so that players who triggered the bugged one can now see the fixed version?

gentle rose
balmy valve
#

Hello. I have joined this server to recieve help with a Content Patcher pack that I am making. The pack adds a new recipe (which works fine,) but the food item itself (empanada) will not load. It will only load the error texture, and eating it softlocks my game so I don't even know if the edibility is correct. The SMAPI log error is "Failed to load texture...asset doesn't exist."

#

I can post links from the log parser if need be.

brittle pasture
#

!json post what you have

ocean sailBOT
#

JSON is a standard format for machine-readable text files that's used by Stardew Valley mods.

If you need help with a JSON file, you can upload it to smapi.io/json to see automatic validation and share the link here.

When making mods, it's recommended to edit your files in a text editor with JSON support, such as VS Code, Notepad++, or Sublime Text. These programs will check for syntax errors.

brittle pasture
#

!log can be helpful too

ocean sailBOT
#

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

Please share your SMAPI log file. To do so:

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

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

balmy valve
#

I will get the log.

ocean sailBOT
#

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

balmy valve
#

Here is the log. The repeating base loop error is after I eat the forbidden empanada.

brittle pasture
#

(can you upload the file at smapi.io/json? thanks. on my phone so the parser link is more convenient)

balmy valve
#

Sure

twin wadi
#

yeah it's really hard to navigate

balmy valve
#

Here you go.

#

I have removed the content/ from the Target part

brittle pasture
#

so you loaded your food texture into the asset named "Content/Data/Objects", which is definitely illadvised since Data/Objects is a vanilla asset

balmy valve
#

Oh dear.

#

How fix?

brittle pasture
#

load it into something like "{{ModId}}/FoodTexture" (example name)

#

then use that value in the Texture field in object data

balmy valve
#

Alright. let's see. Thank you in advance.

twin wadi
#

you can also just load it into something like Mods/{{ModId}}/Pngname

brittle pasture
#

side note, but I also noticed that:

  • you use both the old CustomLocations method and the new Data/Locations way to load your locations. you should remove the former
  • you seem to also be including a dispositions file of mysterious purpose, while having already defined the character's disposition in Data/Characters below
twin wadi
#

just load it somewhere that doesn't replace the vanilla file

balmy valve
#

Okay.

#

I have never coded before so my organization is a mess, I appreciate the advice

#

It works! However, the asset is way too big (i made them 48x48 because i genuinely thought for some reason that's the item size) so I will fix my content.json then fix that

balmy valve
gentle rose
#

you shouldn't really be using dispos for anything any more though

#

(the old kind)

balmy valve
#

I am using MissCoriel's npc creator as a base. That is why my methods are outdated

gentle rose
#

you seem to be mixing old and new methods a lot, are you following a reference from somewhere?

#

ah, I see

balmy valve
#

There is an additional error I am confused about.

#

I made a custom tilesheet for my character Alta's house.

#

Inside, I made a custom tile that is a purple telephone.

#

It shows up fine within Tiled, and none of the other items on the same tilesheet are having any issues. But this specific tile, for some reason, becomes this:

balmy valve
lucid iron
#

Can you try looking anything with tile lookup enabled

balmy valve
#

Question. Should I still be using the "action: load maps/{{modid}} thing if I have already edited the location data to account for this new area

lucid iron
#

It seems like it is out of bounds

balmy valve
#

How so?

#

Oh

#

Should the first tile on tilesheets always be transparent?

brittle pasture
balmy valve
#

I found that out the difficult way. Thank you though

#

To-do list (immediate):
-redo item sprites
-reformat custom tilesheet

lucid iron
# balmy valve How so?

You know how it draws stripes of pixels? That's what happens when the bit of texture that game tried to draw is below the actual loaded texture's bottom edge

balmy valve
#

So what does that mean?

#

Do I need to move the texture down?

#

Or up?

lucid iron
#

You need to validate that the tile index is the correct one (and matches what tiled show you)

#

If it doesn't then fix that

#

If it does then look at whether the tilesheet getting loaded is correct

balmy valve
#

Tile index? Like the tile number on the sheet?

lucid iron
#

Yeah

#

Lookup anything is for checking this in game

balmy valve
#

Okay. Once I am done verifying a schedule I will check the map in Tiled.

#

The tile ID on the map is "0", which is the correct position on the tilesheet.

#

The correct tilesheet is loading, and I can verify this because every other custom tile that I have added is completely fine.

lucid iron
#

Puzzling but try patch export <your map asset>

balmy valve
#

huh??

lucid iron
#

Also check if u got any daytile/nighttile

#

That's a console command

balmy valve
#

Not on that tile, no

lucid iron
#

It dumps whatever is loaded basically

#

So another way to try n verify

balmy valve
#

i type that in the stardew valley?

#

or is it in the actual content patcher folder??

twin wadi
#

when you make a temporary sprite in an event, it says it gets the texture from the tilesheet animations png. i don't want to edit it itself, because that might not be compatible with other mods. how do i use a different tilesheet for the temporary sprite?

balmy valve
#

action load maybe?

twin wadi
balmy valve
#

ohh in the smapi

#

Will do

twin wadi
balmy valve
#

edit data

#

add

#

?

twin wadi
#

but it's a png

balmy valve
#

or am i patching the tilesheet

balmy valve
lucid iron
#

It's whatever target you loaded your tmx to

balmy valve
#

okay

lucid iron
#

If it's a custom map

twin wadi
twin wadi
balmy valve
#

Oh no

#

Maybe?

lucid iron
twin wadi
#

idk how to, does anyone know?

#

because it just says to input the sprite index, and it will get the texture from that png

balmy valve
#

i think you gotta make some extra sprite/texture sheets

balmy valve
twin wadi
urban patrol
twin wadi
#

ohhhhh

#

i didnt see that

#

tysmmmm

balmy valve
#

The patch export shows that all my tilesheets are normal

#

I believe that the best course of action is to simply move that tile within the sheet

lucid iron
#

Yeah who knows, haunted

#

What is this location's type?

#

Is it farmhouse

urban patrol
balmy valve
#

No, it is a custom location, an NPC house

#

And I moved the tile

#

And it's now a different pattern of stripes.

#

I would like to reiterate: every other tile is completely fine

#

Why is this? Why?

worn coral
# balmy valve Why is this? Why?

I think this one would be hard to troubleshoot without actually looking at your files (so json, tmx and your tilesheet) as there could be a lot of moving parts between those - if it's just those three files you could share them for us to take a look? (zip and drop here if you are comfortable?)

balmy valve
#

of course

#

Here's the whole mod

#

I didn't know if grabbing just the few files would mess anything up

#

The tilesheet in question is the "custom items" thing

#

and the tmx is AltaHouse

#

in assets/Maps

worn coral
#

Perfect, thanks - I'll have a quick look at the tmx and the load actions, see if anything stands out, give me a few mins

balmy valve
#

Thank you so much

visual dirge
#

i tried to add support for farm animals & pets to my hearts overflow mod but... i dont think i can pull it off

#

npc friendship is controlled at a single central location and everything, and patching that function to capture overflow friendship was simple enough

#

but pets and farm animals...... every time the game wants to increment your friendship with one by n, it individually does animal.friendshipTowardsFarmer.Value = Math.Min(1000, animal.friendshipTowardsFarmer.Value + n)

#

i can't patch that ๐Ÿ˜ญ

uncut viper
#

why not

gentle rose
visual dirge
gentle rose
#

z_fallspice_custom_objects

uncut viper
#

may i introduce you to Harmony's Replacer Transpiler

worn coral
#

for some reason it's coming through as town interiors actually

gentle rose
#

yup

uncut viper
#

if thats the only time Math.Min is used in a method, you can set a transpiler to just replace every call to Math.Min with a call to your own function

gentle rose
#

it also shouldn't be tile 2196 tbh

visual dirge
balmy valve
#

Hmmm interesting

#

Let me try again

gentle rose
#

oh it's a tsx?

balmy valve
#

Every other file embedded perfectly

uncut viper
#

unless the other mod also replaces Math.Min, nothin else would change if you made sure you patched last

#

(patching last in case they do match on it)

visual dirge
uncut viper
#

you dont have to do it individually

#

harmony transpilers have an extension method that literally does it for you

worn coral
#

yeah there are a lot of extra files in your maps - you should only really have your tmx and your png tilesheet, nothing else when actually testing in game

uncut viper
#

finds all calls to Math.Min and reroutes it

gentle rose
#

(yeah but the other files are also vanilla sheets so they probably just got replaced with those tbh if they didn't load)

uncut viper
#

the only downside is if a method you need to do that in uses Math.Min for somethin else too

visual dirge
gentle rose
#

since you're using non-embedded tilesheets, are you loading them into the game somehow?

uncut viper
#

those situations would need individual patches

gentle rose
#

if not, you have to embed the tilesheet in the map

balmy valve
#

json file*

#

content.json

uncut viper
#

actually, im just noticing that friendshipTowardFarmer is a NetInt

#

just hook into the animals NetEvent

#

be alerted for every single change to it from any source

gentle rose
worn coral
#

you are not loading anything into the tilesheet

balmy valve
#

Oh

gentle rose
#

(I could be wrong though, I haven't messed with maps in ages)

balmy valve
#

Well I used Tiled to make them?

#

So that might be it.

gentle rose
#

everyone uses tiled to make maps

worn coral
#

you need to load your custom tilesheet in as well

balmy valve
#

The reason why I have so many extra tilesheets in my folder is because i edited the town

balmy valve
#

How do I...?

worn coral
#

Like maps load into maps, tilesheets need to go to maps as well since they are meant to be in the same location

balmy valve
#

Ok got it

worn coral
visual dirge
gentle rose
#

(does this work for tsxs, lina?)

balmy valve
uncut viper
worn coral
#

I don't think you are meant to have tsxs, just pngs for the tilesheets, the game reads the rest from the tmx file

lucid iron
#

Maybe u can make an AnimalWatcher

uncut viper
#

you can use tsxs if theyre in the mod folder

lucid iron
#

To hold a weakref to the farm animal

visual dirge
lucid iron
#

And do the event handlers

worn coral
# balmy valve this?

no, so this is your map name, you need to name the tilesheet when loaded the same way you refer to it in the map, else it won't be able to make the connection

uncut viper
#

disclaimer: idk the rest of the context of the convo or what you're doing im just saying you CAN use tsx's in general, not "You arent meant to"

uncut viper
gentle rose
visual dirge
balmy valve
lucid iron
#

You get the old and new values just compare em

balmy valve
#

is this correct?

worn coral
#

without the modid - needs to be the same as the file name

balmy valve
#

okay

#

should i be loading the png or the tsx?

worn coral
#

the png

balmy valve
#

alr

#

now i test!

worn coral
visual dirge
#

ok so

  • patch math.min to store rhs in a static if lhs == 1000
  • use some kind of netint event stuff to associate the stored value with an animal and determine if your friendship with the animal just overflowed & by how much
    hopefully will work?
balmy valve
#

It did not work

#

So

#

What other options do we currently have

#
  1. give up on purple telephone (never.)
#
  1. ignore problem? (no
#
  1. ????
worn coral
# balmy valve 3. ????

Give me a sec - going to try it on my end with a another experienced peep, I'm sure there is a reason, shouldn't need to give up on the purple telephone SDVpuffersquee

balmy valve
#

Okay!! Thank you!

hard fern
#

SDVpufferflat i never thought making a mod of moderate scale would be so exhausting

lucid iron
#

not haunted

patent lanceBOT
lucid iron
worn coral
#

Chu arrives to save the day (faster than any of us SDVpufferheart )

lucid iron
#

im puzzled tho all i did was embed the tsx

#

well, i also yote all the vanilla sheets but thats just normal stuff u should do

balmy valve
#

THANK YOU

lucid iron
#

lesson is tsx is cursed sadly dont use it SDVpufferpensive

#

even tho it'd be so convienant

calm nebula
#

Did you also yeet the mod added tilesheets when you yeet the vanilla ones

#

Smpai looks at the relative dir firsf

lucid iron
#

i moved it to a subfolder (sheets

worn coral
#

was it that the custom was appended to the towninterior tsx?

#

which is why the index was beyond what towninterior normally has?

lucid iron
#

maybe i dunno

#

did not try to reproduce actual problem here kyuuchan_run

visual dirge
#

is there an easier way to edit tmx files than copying the sheets you want to use into the same directory as the file ๐Ÿ’€

uncut viper
#

edit your tmx in the maps folder

lucid iron
#

write ur own Tiled extension

worn coral
#

magical fixings SDVpufferwoke

lucid iron
#

to fix this

visual dirge
balmy valve
#

I can just remove all of the vanilla sheets in my maps folder right?

lucid iron
#

besides that not really, i also just symlink stuff everywhere

worn coral
#

I edit mine from unpacked and yeet a symlink over to my mod folder

hard fern
#

.choose fix mod problem, cry over machine rules

patent lanceBOT
#

Choose result: fix mod problem

hard fern
#

sigh

#

im never making another PIF mod after this

uncut viper
#

sighing wasnt an option

#

i believe in u

balmy valve
#

Can i yeet vanilla png files or no

#

thank you everyone, i go eat dinner now

visual dirge
lucid iron
#

DecidedlyHuman was making one

drowsy minnow
#

im having a slow fuzzy head day so i was wondering if anyone maybe knew how i could check if a piece of forage i created is spawning as its supposed to without it going in the inventory? so far there's no smapi errors, and i have the item in my inventory but i wanna make sure when it spawns everything is all good and that its...actually spawning and not just an object that u need cjb item spawner to retrieve
SDVpuffersob

lucid iron
#

i think it is just that the friction exist but is not so dire that you can't just get used to it

#

quirks like 'dont use any fancy tmx features' and 'dont tileshet climb' and 'keep objects on 16x16 grid & name em TileData'

worn coral
calm nebula
#

Fancy tmx features?

uncut viper
#

like tsxs

lucid iron
#

and that person who tried something and got failed to find .ts

uncut viper
#

who was using typescript for their stardew mods

patent lanceBOT
lucid iron
#

i dont recall context specifically tho but there sure is a lot of things xTile doesnt have 3sSmolMiku

balmy valve
balmy valve
uncut viper
#

(tangentially related but has Pathos ever said anything about the idea of SMAPI itself fixing tilesheet climbing at runtime)

lucid iron
#

hm well how exactly does it fix such a thing NotteThink

drowsy minnow
balmy valve
#

np

uncut viper
#

when a map tries to load a texture asset name just remove the climbing

lucid iron
#

do u want it to look for a magic Maps segment

#

in case of climbing

uncut viper
#

while (texture path != exist as asset) remove ../

calm nebula
uncut viper
#

delete climbing and allow non-maps located assets at the same time

calm nebula
#

You have to remove segments and .. in pairs

uncut viper
#

that is what i was thinking yes

balmy valve
#

Removing the pngs broke every single map

calm nebula
uncut viper
#

didnt chu send a fixed zip of your mod fallspice

lucid iron
#

fyi u need to look at what i changed in the content json too

hard fern
#

SDVpuffersweats i tried to fix an issue where people complained they couldn't plant anything out of season in my pif greenhouse... But i can plant stuff just fine

calm nebula
#

Button, my blood sugar is nonexistent at the moment

hard fern
#

Sigh

lucid iron
#

i did not send you anything i didnt need to change

uncut viper
hard fern
#

Does this just mean that whoever was having the issue had a separate issue not caused by my mod at all

calm nebula
#

I'm raiding the snacks at work

worn coral
balmy valve
#

yes.

lucid iron
#

yea so thats what we spoke of

worn coral
#

yep - when you make maps you need to make them in the folder where all the vanilla tilesheets are

lucid iron
#

edit your map in 1 folder with all the sheets

#

move tmx to the final folder once done

worn coral
#

but when you pack it, you only pack your tmx and your own custom tilesheets, none of the vanilla - like chu said

lucid iron
#

another way to do it is put a dot before all vanilla sheets

#

that guarentees game will not just load em from relative

balmy valve
#

okay

#

Does anyone know how to make access to a door conditional with HasReadLetter flags?

#

I want the text from the door to change from "It's locked" to "You don't know ___ well enough yet.."

#

when the NPC moves into the valley following another npc's heart event

uncut viper
worn coral
# balmy valve Does anyone know how to make access to a door conditional with HasReadLetter fla...

don't know if you can do that vanilla, but you can definitely do it with Chu's framework (mmap) and the tile/touch action mushymato.MMAP_If GSQ ## if-case ## else-case https://www.nexusmods.com/stardewvalley/mods/28423 it has a lot of really awesome map stuff - there is a link to documentation in the mod description

Nexus Mods :: Stardew Valley

Add a few map tile actions and properties for map makers to use.

lucid iron
#

hm im pretty sure mailflag is a thing warp supports

#

idk about doors tho doors are haunted

uncut viper
#

chu can i ask what the image is for mmap

balmy valve
#

they support doors i think

worn coral
#

yeah, couldn't get door stuff working with just vanilla so I default to mmap for most stuff

#

(but then again I do stupid conditional stuff so....)

lucid iron
#

i have no idea it was just in ~/Pictures when i had to pick something

uncut viper
#

somehow, this is a more interesting answer to me than what i was expecting

lucid iron
#

i think its the desktop wallpaper bmp of a really old OS but i never found the source

#

so its possible that i hallucinated it

#

the filename is scatter.png

uncut viper
#

(also cant you just customize the message for a locked door already? is this an interior door you're talking about?)

balmy valve
#

This is an interior door

#

For an NPC that isn't initially in the Valley

lucid iron
#

you wanted door to be locked behind mail instead of hearts?

uncut viper
#

you can change the message for that too

#

assuming you mean ConditionalDoor

#

which is just a Tile/Touch action (you need both i think) you can put down on the door spot to make it accessible according to a GSQ

rare orbit
#

btw? for this framework? how can i make custom kids to work with any spouse? idk who i plan to marry so i'd like for my children to match specific sprites without being restricted to marrying a particular npc
https://www.nexusmods.com/stardewvalley/mods/15152

Nexus Mods :: Stardew Valley

Turns your children into little NPCs. Requires ContentPatcher.

#

??

twin wadi
#

in events, when does the advancedmove command stop if i choose to loop it? when the npc has a command line?

idle lantern
#

I need opinions. Older bachelor, or younger?

idle lantern
tiny zealot
tiny zealot
twin wadi
#

ohhh okay thanks!

drowsy pewter
idle lantern
tiny zealot
#

i live to serve SDVkrobusnaughty

idle lantern
#

Now to figure out expressions

lucid iron
#

is he younger or just recided to shave one day

#

maybe its the spring and summer look

balmy valve
drowsy minnow
#

havent been able to discover my forage item spawn naturally still...this is quite frustrating
(* ยดT โ–ฝ T*)

idle lantern
idle lantern
gaunt orbit
#

I wish c# had something built-in for handling file drag-and-drop

drowsy minnow
idle lantern
#

it's uh.. it's a learning process.

#

This man's unsurpriseable, because I can't draw it.

drowsy minnow
#

if you want you could try keeping the pupils their default size in the normal expressions instead of expanding them up with the eyelid, and just adjust their position to try and make it work as needed?

#

and if your looking to add more pop to the expression maybe make the lips part hust a tiny bit like a triangle?

urban patrol
#

yeah, showing more of the whites of the eyes will convey surprise!

idle lantern
#

Let me do that

#

ty for the art help!

drowsy minnow
#

ofc!

edgy swan
#

so i was writing a harmony postfix for CheckItemPlantRules, and then I realized the method actually has 2 variants. how does harmony patching work with methods with multiple variants?

uncut viper
#

are you using AccessTools to get the method? or are you using annotations?

edgy swan
#

AccessTools

uncut viper
#

AccessTools.Method(Type type, string name, Type[] ListOfParameterTypes)

#

pass a list/array/whateveraskintellisense as the third parameter to that method where the types are the ones used in the specific overload you want to target

#

i.e. [ typeof(string), typeof(int)] would target CheckItemPlantRules(string whaterver, int whatever) but not other overloads

#

if you dont specify which overload when there are multiple available then harmony will complain

brave fable
#

it'll look something like this

// GameLocation.doAction(Vector2 tile, Farmer farmer);
var method = AccessTools.Method(
  type: typeof(GameLocation),
  name: nameof(GameLocation.doAction),
  parameters: [ typeof(Vector2), typeof(Farmer) ]);

(or without using <LangVersion>latest</LangVersion> in your .csproj, new [] { typeof(Vector2), typeof(Farmer) })

gaunt orbit
#

you specify the one you want and it patches only that one
if you want to patch all of them, you have to iterate them and patch them one at a time
otherwise you can specify by parameter types or filter based on access level or declared/inherited

calm nebula
edgy swan
#

do I need to write all of the parameters, or is it fine to just name the parameter that's different?

uncut viper
#

all of them

edgy swan
#

ew

brave fable
#

all parameters, you're providing the method signature to match

edgy swan
#

okay, got it

gaunt orbit
#

reflection is verbose, better get used to it now lol

uncut viper
#

it would have no way of knowing which was "different"

#

it has no idea which one you think is the default

#

and there may be multiple overloads

gaunt orbit
#

some time try writing a method using Emit

uncut viper
#

i did that and it was fun

#

id recommend it

#

fun exercise

gaunt orbit
#

I did that before

#

it's fun as a project but I would recommend using expression trees instead for most things

brave fable
#

unhappy little trees..

uncut viper
#

i looked into expression trees for BETAS but i ran into some issue that made them nonviable i think

#

i dont think Harmony liked em, maybe

gaunt orbit
#

expression trees can only emit to delegates and harmony requires static methods

edgy swan
#

and since CheckItemPlantRules has an out string, does that count as a parameter?

uncut viper
#

static methods or methods generated by a factory

uncut viper
#

DynamicMethods created on demand SDVpufferthumbsup

edgy swan
#

perfect, thank you

gaunt orbit
#

I think you might need to use MakeByRefType to make it match?

#

I don't remember if that's required for GetMethod

#

maybe try without and add it if it doesn't work

uncut viper
#

(im only just now realizing that this code still names them as if they were coming from Special Power Utilities, where it was originally planned for, instead of BETAS. oops)

gaunt orbit
#

what are you using that for, anyways?

uncut viper
daring skiff
#

That's so powerful.

gaunt orbit
#

I thought betas was trigger actions and gsqs SDVpufferfear

uncut viper
#

it is!

lucid iron
#

and crimes

uncut viper
#

this creates postfixes and prefixes

#

if BETAS does not react to an event that you need for your mod to react to, create your own trigger!

#

this way, BETAS can technically provide a trigger for every single thing that can happen in the game. just postfix the relevant function SDVpufferthumbsup

lucid iron
#

why did u want this in special power utility

uncut viper
#

did you have any better ideas for creating a custom power framework

lucid iron
#

yea such as defining Power first

calm nebula
#

!yellowbook

ocean sailBOT
calm nebula
lucid iron
#

i feel like that is the real conundrum

uncut viper
#

okay but how do you define what a Power is

#

given that it can be literally anything

#

and may need to interact with any arbitrary function

calm nebula
#

It's voltage times current

uncut viper
#

in order to work

uncut viper
lucid iron
#

i like atra's answer Dokkan

uncut viper
#

(its better than my initial idea anyway, which was to have people use a minimally functional custom programming language that id compile into actual C# to run)

lucid iron
#

BtnTk

#

Lua back on the table

uncut viper
#

(please keep in mind that at the very onset, it was nothing more than a fun experiment for me to fuck around with, and the initial intent was not for it to be used by anyone. i just had fond memories at the time of my college course where we created a programming language)

calm nebula
royal stump
#

(does casey's Console Code still work in 1.6? SDVpufferthink)

uncut viper
#

i believe so

royal stump
#

oh right, two separate mods, Content Code is the one I was thinking of SDVpufferdizzy
but yeah, Console does work

calm nebula
#

I personally believe that at some mod complexity "do your own c# " is a reasonable response

uncut viper
#

using existing programming languages is cheating /j

lucid iron
#

this does actually reminds me of the <dps simulation thing that informed trinket tinker> which did indeed have a custom DSL that was basically "if X use skill 1"

uncut viper
lucid iron
#

it had this cus the alternative was exec python SDVpufferpensive

#

still i think u can sorta make content pack powers with BETAS now if whatever you came up with isnt too arcane

#

but i dont really think it's 'create Power', more like represent thing player can unlock with 'Power'

uncut viper
#

yeah that was part of the initial BETAS inspiration

#

tbf thats how the vanilla game uses the word Power too

balmy valve
#

Hey- me again. Anybody know how to make custom keg recipes?

lucid iron
#

the power part is nice way to depict it visually tho

uncut viper
#

unless you count extreme spring onion barganing power as an active ability

gaunt orbit
uncut viper
#

you'll add item processing rules

calm nebula
# calm nebula

My power is that, after a decade of schooling, I can Google this image when I need it

uncut viper
#

make sure you move your item processing rules to the top of the item processing rules list via Content Patcher's MoveEntries function

uncut viper
balmy valve
#

THANK YOU

uncut viper
#

(/s)

lucid iron
#

hm is there enough Things in BETAS or whatever to replicate every vanilla profession

uncut viper
#

well with BETAS Harmony patches you can do whatever yโ€”

lucid iron
#

yea including that too

#

how do u do all of it

uncut viper
#

in seriousness though idk

#

i dont know every vanilla profession

lucid iron
#

some of them dont need anything like that crab pot one

calm nebula
#

Clearly button you need to do a profession rework mod with betas

#

Ah

uncut viper
#

0 chance of me doing a profession rework mod

calm nebula
#

Back to the "God I wish someone reworked professions"

balmy valve
#

So you know how furnaces require two items: ore and coal in your inventory? can i make a keg do that, where if you click on it with a blackberry and have mead in your inventory it'll make blackberry mead?

royal stump
#

forage tracking is the one that stands out to me as "only with harmony or a per-tick trigger"

calm nebula
#

But like, the way I want professions reworked

uncut viper
#

its very important to understand that im really not in my lane if i try to make a mod with. how do you call it. "content"

calm nebula
#

Also no I don't know how much I want

#

Also if I rework professions you bet professions suddenly become a single int

balmy valve
#

Oh! yes! additional consumed items nvm

brittle pasture
brave fable
#

surely there's already a massive dramatic mod or two about reworking professions

uncut viper
#

(Selph is resident machine expert)

calm nebula
#

Also I don't know what my way is

brave fable
#

pretty sure it's a song

lucid iron
#

if u wanna do it all vanilla then make a new machine mead keg

balmy valve
#

YES

#

THAT IS WHAT I WILL DO

#

i don't like it when you need mods to get other mods

brittle pasture
#

well, you already need content patcher

balmy valve
#

I'm gonna make a mead keg, and it's gonna be cute, and this may accidentally lead to a brewing rework

balmy valve
lucid iron
#

i dont think it's a bad thing to want to draw ur own mead keg

balmy valve
#

i shall program it too

lucid iron
#

however, people will probably ask you about things like "hey can i use <different mead mod's keg>"

#

another thing to note is that you will probably lose money in the recipe

#

if u were to use honey fuel + black berry input

#

and the honey's like, fairy rose honey blobcatgooglyblep

brittle pasture
#

(ahh, my very first mod. one that I should fold into EMC one of these days if I'm any less lazy)

lucid iron
#

hm does emc have this rn

brittle pasture
#

it does, but only for EMC fuel, while the mod's specifically for AdditionalConsumedItems

lucid iron
#

ig it does just let you flip the ingredients around to benefit from normal mulitpliers

brittle pasture
#

(that's the reason I haven't folded it, since I can just tell ppl to use EMC fuel instead SDVpufferrad )

lucid iron
#

ability to have optional bonus feature is nice thing about CP based framework

edgy swan
gaunt orbit
edgy swan
#

the console blamed the harmony.Patch() method, so I'm blaming it, too!!!

balmy valve
#

Honey fuel, berry input?

#

Oh..

#

No.

#

Mead fuel.

#

Also I think this is a bad idea because I started making this mod to put some ocs in the game. I need to stay focused. I already made drinkable battery acid.

#

Maybe another time

#

I have 4 total recipes: empanada (cooking), battery acid (cooking,) blackberry mead (?) and something i'm calling Void Tea where you put 10 void essence in a keg

#

drinkable battery acid and void tea are given to you by this fool

drowsy minnow
#

hii i could use a little help-

lucid iron
visual dirge
#

i love when i think a transpiler is broken cause im getting weird errors about methods being malformed, but actually its because i did dotnet build while the game was running and my mod's assembly was overwritten in the mods folder ๐Ÿ˜†

brave fable
#

books are data in their purest form: words.

gaunt orbit
lucid iron
gaunt orbit
tiny zealot
visual dirge
drowsy minnow
#

oops didnt mean to send yet

tiny zealot
#

although a transpiler won't really be hot reloadable so maybe nevermind

lucid iron
#

I feel like it bonk me with another process is using the dll

#

Maybe it's only if debugger tho

visual dirge
#

im on linux we dont have file locks

gaunt orbit
#

if you have a json, please use the json parser on the smapi website instead of pasting/uploading it here

lucid iron
#

Im also on linux 3sSmolMiku

visual dirge
#

whaaaat

lucid iron
#

But yea probably cus i was using debugger

visual dirge
#

prolly yeah

gaunt orbit
drowsy minnow
lucid iron
#

Are you are using the vanilla way or the ftm way

#

Or ig spacecore ways

visual dirge
#

some day i hope rustc_codegen_clr will be up to the task of making mods so i can horrify people with it

#

yeah my stardew mods are written in ๐Ÿ˜Ž ๐Ÿš€ ๐Ÿฆ€ rust ๐Ÿฆ€ ๐Ÿš€ ๐Ÿ˜Ž

gaunt orbit
visual dirge
#

they're ๐Ÿ”ฅ ๐Ÿš€ blazing fast ๐Ÿš€ ๐Ÿ”ฅ stardew mods

gaunt orbit
#

I mean you could write it in rust and then just use a c# component to glue it together, but then you'd have to ship the mod with native libs for every platform

gaunt orbit
#

and c# is pretty fast already

calm nebula
#

Once someone used __instance on a static method

#

Needless to say

#

It died on mac

#

But hilariously did not die on windows

#

(Not me)

visual dirge
calm nebula
#

Tbh c# is pretty fast but writing fast c# feels godawful

visual dirge
calm nebula
#

C# normally - great language

gaunt orbit
#

I dunno, I like c# more than most of the other languages I've used

drowsy minnow
calm nebula
#

But when I'm buried in pointers trying to not fuck up concurrency it sucks

lucid iron
#

This project is still early in its developement. Bugs, crashes and miscompilations are expected. DO NOT USE IT FOR ANYTHING SERIOUS.

#

modding seems like the ideal unserious thing to use it for

visual dirge
gaunt orbit
visual dirge
gaunt orbit
#

would you like instructions on adding forage to a location with CP?

drowsy minnow
brittle pasture
#

the problem with CP spawn is that your spawn either overwrite vanilla's, or you increase the spawn limit to account for it

visual dirge
brittle pasture
#

FTM allows you to just spawn your stuff on top, which is simpler relatively speaking

calm nebula
#

well

visual dirge
#

mostly i gotta move a lot of data around in a way that's very parallelizable and very difficult to do in c# without a ton of unnecessary copying & allocation, especially with the limited features available in framework 4.7.2

calm nebula
#

oh framework 4.7.2

lucid mulch
#

having done advent of code competitively, with myself on typescript, others using C# and others using rust/c/etc.
the C# code is competitive, and sometimes does beat C

calm nebula
#

yeah gl have fun!

#

hmm you do have buffer.memcpy though

visual dirge
#

it's also just so much more of a pain in the butt to do parallelization in c# tbf

#

rayon saves my life daily

gaunt orbit
calm nebula
#

oh rayon is amazing

#

and tbh while you can get really fast code in C# it sucks to write

brittle pasture
royal stump
gaunt orbit
#

I just wish you could have a zero-cost string -> ReadOnlySpan<char> conversion instead of it doing an extra alloc

calm nebula
#

there's a bunch of things I want

#

Dotnet even did one of them -> being able to index a Dictionary<string, whatever> with a ROS<char>

#

Another is being able to call string.intern(ROS<char>)

drowsy minnow
#

thank you for teaching me and helping me correct my files, i really appreciate this communitySDVpufferwow SDVpufferheart SDVpufferparty

royal stump
#

@drowsy minnow oh, and also "MapName": "Cindersap_Forest", should be "MapName": "Forest",

#

(you can go to a map in-game and type whereami * in the SMAPI console to see what name to use there)

visual dirge
urban patrol
#

walk into the forest shouting "WHO AM I" meanwhile lewis is calling the town psychiatrist

royal stump
#

SDVkrobusgiggle you can tell I've been on hiatus for too long because I forgot how to spell that

calm nebula
#

esp on net framework

#

it gets a lot better by 6 but a LOT better by 8

#

it's still not great.

#

otoh, I feel like the number of times I've been like "no jit stop breaking my benchmarks" has gotten a lot higher lately, vs "dude jit can you not constant fold that?"

#

(I use ILSpy to look at the disassembly)

#

sorry

#

LinqPAD

gaunt orbit
#

linqpad is great

calm nebula
#

lol

#

lol esca that's not even the terrifying one.

urban patrol
#

if i'm editing Data/WorldMap, do i need to use text operations?

royal stump
#

depends on the specific field/goal, like if you want to add more aliases to a MapNeighborIdAliases entry or expand one of those Text fields

calm nebula
#

okay, stupid questions time

#

endertedi sent me a PR, but they targetted the wrong branch

#

how do I move it to the right branch?

urban patrol
calm nebula
#

ah got it

#

@finite ginkgo - just fyi, alpha is the only current branch in my repo

#

all development is on it, in theory I will merge into main when I finally do my 1.6 updates and releases

#

in practice that will never fucking happen

#

(because I'm a terrible person)

#

I'll fix the conflicts and merge - done

fierce vault
urban patrol
#

there's a tutorial on the modding wiki but i think it may be incomplete

fierce vault
#

Ah, ok. Iโ€™m afraid I canโ€™t be of much help with that then

urban patrol
#

that's okay, thank you for offering!

royal stump
#

I'm not really familiar with all the settings, but if you're adding a new area to the map, you'd probably want to add an entry to the MapAreas list in the Valley entry, yeah SDVpufferthinkblob

urban patrol
#

would the syntax of that look like this?

    "Action": "EditData",
    "Target": "Data/WorldMap",
    "Entries": {
        "Valley": [
            "MapAreas": {
                            "Id": blah
                            "PixelArea": blah
        ``` etc?
#

the table on the modding: world map page is several layers deep and i'm not sure how i write that

royal stump
#

that would probably replace the whole Valley entry, so you'd want to do something like this to just edit MapAreas:

{
    "Format": "2.7.0",
    "Changes": [
        {
            "Action": "EditData",
            "Target": "Data/WorldMap",
            "TargetField": [ "Valley", "MapAreas" ],
            "Entries": {
                "YourMapId": {
                    "Id": "YourMapId",
                    "Condition": null,
                    /* etc */
                }
            }
        }
    ]
}```
(disclaimer that I don't work with CP much)
uncut viper
urban patrol
tiny zealot
urban patrol
#

despite the scope of my mod i still don't know exactly when to do targetfield/field/entries

uncut viper
#

one of the reasons i always keep ariuybd a ButtonPressed event too, so i can slap a F2 -> unapply -> reapply in there

#

around*

calm nebula
#

ariuybd

brave fable
#

i usually just add a blank console command with the same effect. keyboard real estate is expensive these days and i'm not waiting for the bubble to burst

royal stump
#

fields can usually do what TargetField does anyway, but it depends on how nested everything is

urban patrol
uncut viper
#

Entries doesnt necessarily overwrite but rather everything you dont specify is reset to default values

urban patrol
#

so not ideal when editing a checks file 3,000 line json, got it lol

calm nebula
#

Entries makes a new Entry (with default value where not specified)

#

Fields edits the Fields

#

y'all think I can break a thousand?

royal stump
# urban patrol so not ideal when editing a *checks file* 3,000 line json, got it lol

yeah, this is the example that usually comes to mind SDVkrobusgiggle

"Action": "EditData",
"Target": "Data/Objects",
"Entries": {
    "MossSoup": { /* this makes MossSoup use all default settings, except the ID and description */
        "Description": "Maybe a pufferchick would like this."
    }
}

"Action": "EditData",
"Target": "Data/Objects",
"Fields": {
    "MossSoup": { /* this just edits the description and keeps the existing MossSoup entry, if it existed */
        "Description": "Maybe a pufferchick would like this."
    }
}```
#

it's contextual, but if you're just modifying an existing entry (like a MapAreas ID that already exists), you probably want Fields

lucid mulch
#

iirc that would reset id too, its only in a list data structure that CP will understand its semantics

urban patrol
rigid oriole
#

Is this different from TargetField?

#

i should scroll up my bad

lucid mulch
#

actually Objects doesn't have an id field, so doesn't matter

royal stump
#

my understanding is that using Fields like that is very similar to TargetField, though there are probably assets that don't handle it
(and it's been years since I learned about Fields)

lucid mulch
#

though many of the stardew data models with an Id field are properties with a computed getter which will try other stuff if its backing field doesn't have a true value

#

Fields is editor.GetEntry(outerKey).SetValue(innerkey, value)
TargetField rescopes editor to point to the inner data model

it uses the same semantics as Fields (and entries) to get deeper, but it baselines everything else to talk in terms of that nested data model

calm nebula
#

Thanks, sinZ!

#

(this won't add new patches, but will automatically cause existing patches to be re-applied)

lucid mulch
#

probably should be in the updateapplication lifecycle hook, but I'm not entirely clear on the distinction

uncut viper
#

will this stop Rider from telling me i cant reload if i affect a lambda or w/e or does this only even work if i specifically use dotnet watch

lucid mulch
#

this wont make changes that "cannot hot reload" start hot reloading, its more when a successful hotreload occurs, have the assembly react to it at runtime

uncut viper
#

ahh, gotcha

lucid iron
#

wow reapply harmony patch

uncut viper
#

i guess for transpilers specifically thats handy

#

overkill for the others tho a bit atra SDVpuffersquee

lucid iron
#

now we just need BETAS Harmony Transpilers and retranspiler on invalidate

lucid iron
#

i wonder what the ontimechange hit would be like

uncut viper
#

genuinely the only thing preventing harmony transpilers is the fact that literally 0 people would ever have even the slimmest chance of using it

#

whereas with the other stuff i still havea tiny amount of hope

#

but itd be trivial to take in a list of opcodes to match and a list of opcodes to insert

lucid mulch
#

that was my stance with profiler doing dynamic harmony patches too

uncut viper
#

and i already got my "well this is a fun experiment" proof of concept out with the prefixes and postfixes so i have no reason to do more

lucid iron
#

i been thinking about the list of "will explode game as an error item"

#

rn ik placed floor explode draw loop on bad texture and fish tank is also no good if it errors with a fish inside

#

will break renovations in ur house

uncut viper
#

animals too i believe though idr the circumstance in which an animal can end up with a texture that broken

lucid mulch
#

too much effort to have a serializable format to describe IL pattern matching, particularly for me where I need before/after at all times, which is why I expose the profiler API to C#, and let child mods do the transpiler patches

lucid iron
#

i thought animals just error chimkin

uncut viper
#

in normal circumstances they do

#

but i recall someone iun this channel some months ago having an issue with supremely broken animals

#

i coulda sworn you were around at the time too and also said "i thought animals just error chimkin" possibly in those exact words

trim sand
#

ah yes. error chicken

lucid iron
#

see i vaguely remember the animal problem being related to uiis2 not handling the error chicken (this is fixed tho)

#

idk if it was game itself not liking it

urban patrol
#

wait wrong json hang on

lucid mulch
#

I'm semi surprised they had enough self control to not make it an error pufferchick, but I guess that might have been too much effort for a easter egg

urban patrol
lucid iron
#

this is a list

#

need a { } in the [ ]

vernal crest
#

I think we found that pets explode the game when their texture is wrong but farm animals don't...but I didn't actually write the results of my testing in my test mod.

urban patrol
#

do all lists need {} inside?

uncut viper
#

no

#

but lists of {} objects do

lucid iron
#

no but this is a list of models (WorldMapAreaPositionScrollTextZoneData)

lucid mulch
#

if you are doing "Key": "Value", it needs to be in a {}

#

if you are doing ["a", "b", "c"] then no {} needed

uncut viper
#

you can have a list of e.g. ints like [ 1, 2, 3 ] since those are not objects

urban patrol
#

ah i see

uncut viper
#

("those are not objects (laymans explanation)")

lucid iron
#
[1,2,3,4] // fine
[{"Id": 1}, {"Id": 2}] // fine
["Id": 1, "Id": 2] // nop
urban patrol
#

listen i failed out of OOP in college lmao

lucid iron
#

something something use vscode(ium) my beloved

lucid mulch
#

[1, 2, 3, "apple", {"Id": 42}, 6] is also valid, but semi annoying to do well in C#

lucid iron
#

do u just need a bunch of implicit operators for this

#

or List<object>

uncut viper
#

tbh also annoying to do in json

lucid mulch
#

implicit operators or an explicit JsonConverter to interpret it, or do what CP does and just say its a JToken and tell newtonsoft to stop trying

uncut viper
#

just bc of how uncommon it is and you have to remember what it is you're doing

urban patrol
lucid iron
#

Also supports schemas

urban patrol
#

hmm i'll look into it!

lucid mulch
#

also lets you use my upcoming debugger mod/extension if I ever release the vscode half

urban patrol
ocean sailBOT
#

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

dusty scarab
#

does anyone know what the pixel size for a fruit tree growth png is? I know crop growth png is 32x128, but I can't seem to find how big the fruit tree one is supposed to be

urban patrol
dusty scarab
#

looks like 80 pixels tall, 432 wide

urban patrol
#

does farm animal friendship run on the same scale as NPCs where 1 heart = 250 points and full is 10 hearts?

uncut viper
#

no, animals cap out at 1000

royal stump
urban patrol
#

thank you!

mental bluff
#

hi there, does anyone know if itd be possible to make cgs (like those special sort of heart events) with crystal clear images? I'm creating a mod with portraits that are using portraiture but when I'm drawing the cgs it sort of bothers me that I can only get the ingame images that go along with heart events to be pixelated. Any help would be appreciated! If I have to code this myself instead of following someone else it's fine but I'm kind of new to it so I'd rather not ๐Ÿฅฒ

hard fern
#

I feel like it would be possible so long as you had a large enough map, but I don't know if it's like, actually possible to do so in game

#

But also idk if you can do magic with c#

#

๐Ÿค”

opal lotus
#

hi there, can someone help me change layout without having problem with the bushes

hallow prism
#

!rtf does this command exists

ocean sailBOT
#

Reset Terrain Features (https://smapi.io/mods/#Reset_Terrain_Features) is a mod that lets you reset, clear, or generate everything that spawns on a map using an in-game menu. That's especially useful when changing maps mid-save, as the debris will otherwise use the old layout (causing things like trees in the water or bushes blocking exits).

hallow prism
#

and there's a mod to switch farm too

#

i don't remember exact name but something like farm switcher

unique sigil
#

easy farm switcher!

drowsy minnow
ocean sailBOT
#

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

steel plaza
#

quick question, what do i put in the "Texture": - when i plan to use a vanilla texture?

#

basically this

steel plaza
# steel plaza

@vernal crest sorry for pinging, but do you have any experience with this?

vernal crest
steel plaza
#

do i still need to still do the action load?

#

thanks for replying btw

vernal crest
steel plaza
#

it works thankssss

#

next update of the mod will be compatability with other mods

#

okay unrelated to modding how do i update a mod in nexus? i have the file change the version in the manifest also, but it doesn't show that there is an update in the console window

tiny zealot
#

if you just updated on nexus, you have to wait up to an hour for SMAPI's cache to find it

#

(SMAPI asks its own server for update checks, and the backend only periodically fetches live from the hosts)

lucid iron
#

You have the nexus:num update key right

steel plaza
#

yes

steel plaza
steel plaza
#

@vernal crest do you still remember the mod that adds a delivery truck? the one that add a warp on the right side(i think) of the bus stop

steel plaza
lucid mulch
#

also mineral town has compatibility in the same spot

glad raptor
#

I need help figuring out what resolution and asset-size I should use if I want to make a replacement for Junimo Kart. I want to make a retrostyle arcade game to completely replace the Junimo Kart game. I am using Godot GDScript for now because I am a beginner and haven't learned C++ yet, so I am just going to make the game in GDScript then remake it in C++ just to get in some practice.

Anyway, I want to make sure all my assets are the right size starting off so I can reuse them when I make the final game. I am going with 16 by 16, as per the tile/sprite sizes for Stardew and the native resolution for my game is 640 by 360. Is that a good place to start? I tried to do my own research but I just got more confused realizing how little I understand about how resolution and scaling actually work, lol. I know for pixel art you should start small and scale up, but 16 by 16 looked pretty tiny in Godot, and when I transformed the scale by 2 in Godot it looked blurry. Does that mean transforming the scale in a game engine is different to how images get scaled up for different resolutions and I shouldn't be relying on that? I tried a 36 by 36 sprite and it displays much better, but I assume that won't work for a mod. Does Stardew scale up it's sprites in-game?

Also, I noticed the assets for Junimo Kart are all done with a tilesheet, do I need to be creating everything in a tilesheet instead of as separate image sprites?

TLDR; If I want to make a Junimo Kart replacement to use in my mod, can I develop the game in a 640 by 360 resolution with 16 by 16 sprites and have it be compatible with Stardew?

fathom hound
#

theres a doom arcade machine mod you can probably dissect

lucid iron
glad raptor
#

FYI I figured out the scaling issue I was having in Godot, lol

lucid iron
#

I'll have to ask what exactly the goal is here cus in a sdv mod u can just start junimokart

lucid mulch
#

I'm very confused why GDScript and then C++ is being talked about in relation to making stardew mods

glad raptor
#

I'm sorry, I meant C# not C++. I am just making the game in GDScript first to practice because I haven't learned C# yet and so far I am only using content patcher mods so far. So the end game is to make a C# mod so I can replace the Junimo Kart game in my mode with a custom game that fits the theme of my mod.

#

And the final version of the replacement will be in C#. I'd essentially be making it twice as a way of practicing programming.

lucid iron
#

u don't have to replace any game in particular (unless you want to) cus u gotta implement the part where player can start the minigame

proud wyvern
#

Using GDScript assumes using Godotโ€™s engine, which has literally nothing to do with Stardewโ€™s MonoGame

#

MonoGame is less of an engine and more of a framework

#

Aka it does less for you

lucid mulch
#

and learning the ecosystem is arguably more important than the language syntax

proud wyvern
#

So that experience in making the GDScript game first will probably be mostly for naught

lucid iron
#

Yeah it is probably better to implement a simple minigame like tic tac toe directly in sdv/monogame first

#

Then u can make the fancy minigame

#

(I say simple but u have to do all the draw loop and game tick stuff by hand SDVpufferpensive )

calm nebula
#

Uphill

#

Both ways

quartz turret
#

heyy, I am right now trying to added the overgrown garden farm by daisyniko, but i seem to have some problems.
I just wanted to change 3 tiles, because i moved my house and the tile decorations that are directly right of the player house are now just in the way, I have never moded but i got the point where i got the custom map open in tiles and added the tilesheets that it requested but the map looks just outright wrong and the tiles around the water just keep changing?
could anyone help?

lucid iron
#

Start over

#

Instead of adding custom sheets, find the sheet it used and place them in same folder

#

!unpack

ocean sailBOT
#

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

quartz turret
#

i did add the vanilla tile sheets by unpacking the content

lucid iron
#

yeah so you gotta make it like

#

Somes folder/
YourMap.tmx
spring_Outdoors.png

#

(or whatever the name is)

#

Don't accept the Tiled prompt to find missing sheet on disk

quartz turret
#

i did add all the tilesheets it prompted me to locate, in the same newly made folder with the map. should i just close tiled and open the map again?

#

well that didnt work XD

lucid iron
#

I recommend backing up whatever u have rn and redoing things

quartz turret
#

i closed the programm, opened the custom map which is in a newly made folder with the tilesheets together, but it still looks the same... Im sorry maybe iยดm misunderstanding something?

lucid iron
#

Redoing things as in begin from the original map tmx

quartz turret
#

so there is no way of just editing the mod map? i really only wanna change 3 tiles SDVpufferwaaah

lucid iron
#

Well there is but you are in a bad state rn

#

Now another way to just edit 3 tiles is to just do EditMap without a real tmx

quartz turret
#

oh okay that sounds good is EditMap a feature of tiled?

tiny zealot
#

EditMap is a content patcher patch type (action)

balmy valve
#

Okay everyone! How do I edit the existing data of kegs to allow for a recipe: 10 void essence = 1 void tea?

#

Oh wait hang on

#

I think I need to make a keg specifically for void tea?

#

But i dun wanew

lucid mulch
#

Would be an entry in data/machines

balmy valve
#

Thank you!

prisma sky
#

alright then back to work I go, so what are the keywords I should be looking for if I want to add more NPC animations and control them with c#, not events or schedules?

lucid iron
balmy valve
#

yes thats what i'm making!!!

#

i figured it out!

lucid iron
lucid iron
prisma sky
#

got it, time to study SDVpufferrad

balmy valve
#

Welp. Another problem. Here is log.

ocean sailBOT
#

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

brittle pasture
#

json plz

balmy valve
#

yes

brittle pasture
balmy valve
#

line 276

#

right sorry foirgor

brittle pasture
#

you're missing TargetField to drill into the keg entry

#

["(BC)12", "OutputRules"] should do it

balmy valve
#

Thank you!

#

where should i put that

brittle pasture
#

same level as Target/Entries

balmy valve
#

Okay

brittle pasture
#

(also you dont need to specify default/null fields)

balmy valve
#

OH I DON'T?!

#

HECK YES

#

is this correct?

brittle pasture
#

"TargetField": ["(BC)12", "OutputRules"],

balmy valve
#

oh ok

balmy valve
#

thank you!

#

It's still giving me the same error...

#

It's in yellow though not red

#

Should I continue?

brittle pasture
#

post your json again

#

ah wait I know

#

You also need to wrap your fields around a key
so

"Entries": {
  "{{ModId}}_VoidTea": {
    // stuff
  }
}
#

right now you're putting those fields directly into OutputRules instead of inside a new entry in OutputRules

balmy valve
#

missing bracket ๐Ÿ˜”

brittle pasture
#

then add em

balmy valve
#

i knoww

#

seriously though, two weeks ago i had never touched code in my life and now i'm building a mod with no previous experience and most of my errors are just missing brackets which i think is pretty good

#

Okay I added the recipe correctly but it produced an undrinkable error item

#

And smapi showed. No. Errors.

lucid iron
#

Err item is the error Dokkan

brittle pasture
#

post your new json just in case

balmy valve
#

HEY! THIS STUPID TEA BROKE MY DRINKABLE BATTERY ACID TOO!

#

It didn't break my empanada

#

So it must be an issue with the drink

brittle pasture
#

your empanada and void tea entry is outside of Entries

#

move them back inside

balmy valve
#

O

#

ok should be fixd

lucid iron
#

It's helpful to format yer json

#

Consistent indentation helps spot issues like this

balmy valve
#

The Void Tea restores 90 health and 200 energy, requires 10 void essence, what should I do to make it not so overpowered

#

A debuff, maybe?

lucid iron
#

It's not that overpowered

balmy valve
#

dude that's like. Killer early-game

lucid iron
#

No one really eats food for health

balmy valve
#

Unless i just lock it behind friendship

balmy valve
lucid iron
#

It's for buff PecoSmile

balmy valve
#

Hmmm

#

Well for Battery Acid i double-nuked it by making it need 2 joja cola and 1 battery pack to make 2

#

and then giving +4 speed for 1 min 30 sec but nausea for 2 min

lucid iron
#

But yeah if u want u can tune the recovery to same level as tea but add some fun buff

#

I don't think balance is that important just do whatever vibes

brittle pasture
balmy valve
#

I think I'll do that

lucid iron
#

Unless u had void essence producing crop

brittle pasture
#

tru

tiny zealot
balmy valve
tiny zealot
balmy valve
#

hm yeah that's fair

#

I think void tea is fine as is

#

Solar tea, however, would be CRAZY

tiny zealot
#

has a pretty good g/hp ratio if memory serves but i don't think it's the best. just cheap and no conditions to access

balmy valve
#

is there a way to lock machine recipes to friendship?

#

or to a certain letter?

tiny zealot
#

pretty sure you can give crafting recipes via letter, yeah. just set up a trigger action to send the mail after a certain friendship level

lucid iron
#

You can lock it behind a GSQ yea

tiny zealot
#

oh i see what you mean. check out what chu said then

lucid iron
#

For clarity i would do it via trigger action dayending send mail, keg gsq on mailflag

#

Vmv has examples of this

#

And the benefit is that the player get a notif about it (cus they get the mail)

balmy valve
#

I like your funny words magic man

lucid iron
#

Basically the machine input trigger part can take a Condition

balmy valve
#

YES thank You

#

so

#

condition: has read letter [void tea recipe letter]
letter send condition: f {{ModId}}_DelKior 2

#

sm like that

lucid iron
#

Yeah but take look at game state query page for how to format that

#

It's not event preconditions

balmy valve
#

Heey this is new!! I like it though!

#

autistic stare

molten kestrel
#

heyy guys

tiny zealot
faint ingot
#

I just noticed that in an event "Weather rainy" is true for indoor locations on sunny days. would "GameStateQuery Weather Town rainy" work if I want it to be raining outside?

#

hmmm i tried running that weather check query from a debug command and it returns false regardless of the weather condition I'm checking

tiny zealot
#

the Weather event precondition honors the weather in the current location context, so if you're getting the wrong result it could be that your indoor location's context is incorrect?

#

say for example you have a custom context zone where it's sunny, but in the default context it's raining. if your indoor map in the custom zone is wrongly set to the default context, it will be rainy inside

#

as for the gsq, it has slightly different accepted values for the weather:

WEATHER <location> <weather>+ The weather ID in the given location. The <weather> can be one of Festival, Rain, Snow, Storm, Sun, Wind, or a custom weather ID.

prisma ibex
#

Is it possible to mod the game without having the steam version

calm nebula
#

Yes

faint ingot
#

OK thank you it seems I need to read up on location contexts.

calm nebula
#

You can also mod the gog or Microsoft gamepass verisons

prisma ibex
faint ingot
#

well I tried updating the location context but must be doing something wrong. in the end I got the effect I wanted with a gsq didn't see that it needed to be 'rain' instead of 'rainy'. reading comprehension fail.

urban patrol
#

tiny errors like that annoy me sooo much lol

urban patrol
#

is it possible to create a record player item that would have the same functionality as the jukebox, or is that hard coded somewhere?

calm nebula
#

Very hardcoded

tawny ore
#

You could maybe fork/update Handy Headphones because that's a mod that sort of worked like a record player

urban patrol
#

hmm iโ€™ll look into it!

#

i just thought it would be a cute character-themed item to include haha

tawny ore
#

Note - I have no idea what that would entail. Maybe there's a reason it wasn't updated to 1.6.

urban patrol
#

another optionโ€”maybe i could create a config option to reskin the jukebox

lucid iron
#

Well if u just want yer music in jukebox it should work

faint ingot
#

Can the mine maps be edited in content patcher? I'm interested in editing this but I'm not sure I can find it in the unpacked game files. I'm on mines level 58 but this doesn't match 58.tmx in Maps/Mines

lucid iron
#

Is the custom jukebox supposed to just play a few songs?

tawny ore
#

This sounds like a soft request for a Jukebox Framework

urban patrol
#

i was just going to have it be vanilla music tbh

lucid iron
urban patrol
#

i donโ€™t think my skills lie in creating DRM-free game music lol

tawny ore
lucid iron
#

Hrm

#

-# smd make arbitrary BC able to take on the special types

tawny ore
urban patrol
#

๐Ÿ‘€

faint ingot
uncut viper
#

check 28.tmx

#

in the Mines folder

#

most mine layouts are the same first ~30 but repeated with the main tilesheet swapped out

tiny zealot
lucid iron
#

Can u list cue ids tho

tiny zealot
#

i dunno i haven't really looked into it

urban patrol
uncut viper
#

seems like it'd be easy to do and test

calm nebula
#

But not for 1.0

tiny zealot
uncut viper
#

rest assured that was me soft voluntelling chu to do it

tiny zealot
#

new mmap feature ๐Ÿ‘€

uncut viper
#

probably one of the few asset types where you'd be able to tell if one was modded or not reliably

calm nebula
#

I agree chue should do it

uncut viper
#

wait atra as long as your here

#

how do you make your own content manager, do you just initialize a new one
You did that once right

calm nebula
#

It depends on why you want a new one

#

In particular, do you want a smapi tracked one or no

uncut viper
#

No

calm nebula
#

Yeah just init a new one

tawny ore
#

I think it was for Coriel

lucid iron
rigid oriole
#

put feature in pelcan mouth

tawny ore
wise forge
#

A thought that entered my head: I really wish I knew more about the modding process. It would be so cool to be able to create a custom NPC for The Doctor from Doctor Who.

#

I'd commission someone for that in an instant ๐Ÿคฃ