#making-mods-general

1 messages · Page 394 of 1

brittle pasture
#

no

calm nebula
#

Swift

brittle pasture
#

Taylor

calm nebula
#

Hottest pop star in the west

dusty scarab
#

darn. I was hoping someone had seen something I'd missed. thank you :D

gray bear
#

i mean there is in fact a swift Tool enchantment

scenic pecan
#

I'm trying to spawn a monster when you go to get your crops

#

But I do not know how to compile things

dusty scarab
#

right click on your project and "Build"

scenic pecan
scenic pecan
dusty scarab
#

let me quickly make screenshots

tender bloom
#

No

#

How did you get these files?

scenic pecan
#

am i supposed to compile now?

scenic pecan
tender bloom
#

Do you have an IDE?

#

Ah ok

#

VSC can compile but if you don’t know any C# this will be much more painful than CP

dusty scarab
scenic pecan
#

Yes

dusty scarab
#

first, your main must be called ModEntry.cs and has to follow this template

#

!startmodding

ocean sailBOT
#

Making mods can be broadly divided into two categories:

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

scenic pecan
#

Everyone keeps linking this to me

#

what am i suposed to do in this wiki

dusty scarab
#
using Microsoft.Xna.Framework;
using StardewModdingAPI;
using StardewModdingAPI.Events;
using StardewModdingAPI.Utilities;
using StardewValley;

namespace YourProjectName
{
    /// <summary>The mod entry point.</summary>
    internal sealed class ModEntry : Mod
    {
        /*********
        ** Public methods
        *********/
        /// <summary>The mod entry point, called after the mod is first loaded.</summary>
        /// <param name="helper">Provides simplified APIs for writing mods.</param>
        public override void Entry(IModHelper helper)
        {
            helper.Events.Input.ButtonPressed += this.OnButtonPressed;
        }


        /*********
        ** Private methods
        *********/
        /// <summary>Raised after the player presses a button on the keyboard, controller, or mouse.</summary>
        /// <param name="sender">The event sender.</param>
        /// <param name="e">The event data.</param>
        private void OnButtonPressed(object? sender, ButtonPressedEventArgs e)
        {
            // ignore if player hasn't loaded a save yet
            if (!Context.IsWorldReady)
                return;

            // print button presses to the console window
            this.Monitor.Log($"{Game1.player.Name} pressed {e.Button}.", LogLevel.Debug);
        }
    }
}```
dusty scarab
scenic pecan
#

What is it?

tender bloom
scenic pecan
#

Are you givng me a SMAPI skeleton?

dusty scarab
#

public override void Entry is where you register events and what happens where

#

it's the basic template

#

You mod MUST have 2 things, 1. ModEntry.cs which is like your main, and manifest.json

dusty scarab
dusty scarab
#

and I apologize, I missed your no @ on reply request

gray bear
dusty scarab
#

Okay, first you need something to run when your mod is being registered which is ModEntry.cs, this is what's called when SMAPI loads your mod

scenic pecan
#

How do i get "ModEntry.cs"?

#

Do you want me to show it to SMAPI?

dusty scarab
#

either rename class1.cs or make a new item

dusty scarab
scenic pecan
#

Hold on bro

#

Im pretty sure Entry is just aa block

#

so i can have it anywhere

#

i'll write it in the Class1.cs somewhere down there

dusty scarab
#

When SMAPI launches what it starts to check is for ModEntry.cs if I understand correctly.
You might be able to do it your way, I am not 100% certain but I haven't done so

dusty scarab
scenic pecan
#

Automatically?

#

I didn't put anything in SMAPI's mod folder right now by the way, i've installed zero mods right now

dusty scarab
uncut viper
scenic pecan
#

How to test if entry works?

dusty scarab
scenic pecan
#

no

calm nebula
dusty scarab
#

they want to spawn an monster when going into the farm

scenic pecan
#

spawn a monster when a crop is broken, sometimes

uncut viper
#

you can also register SMAPI events from anywhere

scenic pecan
#

Do you mean my mod doesn't need to be in the SMAPI mod folder for it to work?

uncut viper
#

im only saying you can do things in more than just your entry function

#

so long as those other functions do run eventually

scenic pecan
#

Ok

uncut viper
#

if you've compiled your mod then you test it by launching the game and seeing if your mod does what you told it to do

dusty scarab
#

can they spawn a mob with content patcher, they need C# right?

uncut viper
#

im not familiar enough with FTM to be able to answer that within the context of their idea

scenic pecan
#

the way a code is "compiled" is by renaming it?

dusty scarab
#

click build

scenic pecan
#

I don't have "Stardewmod3"

dusty scarab
#

Stardewmod3 is the name of my namespace

scenic pecan
#

where do i find my namespace

dusty scarab
#

your name space is StardewValleyCropJunkie if I am not mistaken

scenic pecan
#

where is it tho

#

is there a shortcut to "build"?

dusty scarab
#

wait, are you using VSC or VS22?

#

if you're using Visual Studio Code it doesn't have a compiler....

scenic pecan
#

it's icon is blue

#

and it's called Visual Studio Code

scenic pecan
dusty scarab
scenic pecan
#

Only a software can compile?

#

i can't do it manually?

iron ridge
#

you can run dotnet build StardewValleyCropJunkie from a terminal in vs code

dusty scarab
scenic pecan
#

error MSB1009: Project file does not exist.

#

I'll ask Chatgpt later

iron ridge
#

!gs i really just recommend folowing the docs for visual studio
(wrong command, oops)

ocean sailBOT
dusty scarab
# scenic pecan I'll ask Chatgpt later

From personal experience it doesn't give the most accurate information especially with this subject I really suggest you read the wiki, especially the get started and IDE reference. visual studio 22 for me is a lot more comfortable than code

dusty scarab
# scenic pecan I'll ask Chatgpt later

!startmodding it really has everything you need and is easily digestable. I suggest following the "getting started with C# modding" and (and I am speaking from experience cause I sure as hell know I exhausted some people) people are really nice here and more than happy to help even if my questions are a little silly at times.

ocean sailBOT
#

Making mods can be broadly divided into two categories:

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

gentle rose
# scenic pecan what am i suposed to do in this wiki

When we link wiki pages, usually it means that in our experience, that page has the information relevant to what you’re trying to do, so it’s worth trying to read it (maybe even multiple times). Programming and modding often require understanding multiple specific concepts in order to achieve things, so the more you read, the better.

ChatGPT can only know what it reads from the internet, and in this case, all the reliable information is on the wiki, so the wiki is literally just a more reliable version of what chatgpt would tell you without the mistakes. (Also, it’s worth pointing out you aren’t allowed to post code written by chatgpt in this server.)

golden basin
#

@finite ginkgo "Introduction.Popper": "Hi! I'm Pop! Like Pop, Pop, Joja Pop!#$action Spiderbuttons.BETAS_Jump FC.Popper",

is it like that?

urban patrol
#

is anyone familiar with the mod NuclearBomb? someone sent me a log with no visible errors, but there are about a trillion mods they have loaded. there's one mod, NuclearBomb, which is editing my assets and i'm wondering if that's causing the player unwanted behavior

obtuse wigeon
#

Is there a command like patch summary that shows which mods modify a tilesheet? One mod I have is messing with a certain type of tile but I can't tell which

gray bear
#

patch summary "<modid>"

gentle rose
#

if they’re doing it via content patcher it’s still patch summary

obtuse wigeon
#

I'm trying to specify the tilesheet rather than the mod itself, because I don't actually know which mod causes it, something like patch summary winter_outdoorTileSheet rather then patch summary "<modid>"

uncut viper
#

you dont need to specify a modid

#

you can just do patch summary and get a summary of all patches

#

but iirc you can also do it by asset as long as you have the asset name

#

but it would be Maps/winter_outdoorTileSheet

gray bear
#

you can patch export maps/winter_outdoorTileSheet i think

#

wait no that's patch summary as well

#

it just showed up as it. what button said ^

obtuse wigeon
#

Ahhh I tried Maps:winter_outdoorTileSheet as thats what lookup anything says the tile is on, that's why it wasn't working, thank you!

gray bear
#

are there docs for this anywhere

finite ginkgo
#

(to see the summary for a specific asset the command is patch summary asset <asset name>)

uncut viper
#

ah, i missed the literal asset part

gray bear
#

ooh, i see. thank you

gray bear
obtuse wigeon
#

It seems that has not helped at all. it's filtered for the right asset, but it doesn't show anything that patches it, neither Maps/winter_outdoorTileSheet or Maps/outdoorTileSheet shows which mods patch them, when I clearly have on as I play with a recolour, odd, oh well

#

Whoops my fault, never mind it does actually work, outdoors is supposed to be pluralized

royal stump
urban patrol
gray bear
#

someone using sushi project had this problem and i don't think it's fixable

finite ginkgo
uncut viper
gray bear
uncut viper
#

you're confusin different people together bea

gray bear
#

oh! wrong reply

urban patrol
ocean sailBOT
#

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

gray bear
#

apologies, was meant for atlas

urban patrol
#

no worries! i do that all the time lol

uncut viper
#

whats one of your NPC or location names?

golden basin
#

who made betas?

gray bear
#

button

royal stump
#

button, right above you SDVkrobusgiggle

obtuse wigeon
#

Not sure if I understand the C# code right but in NuclearLocation.cs is it taking all .tmx maps and modifying them?

uncut viper
#

i did

golden basin
#

oh buuutton

#

I think i found a bug

urban patrol
#

NuclearBomb edited Maps/handwrittenhello.dbda_Lighthouse.

#

i turned on trace and filtered by handwrittenhello

uncut viper
gray bear
obtuse wigeon
uncut viper
golden basin
# uncut viper i did

so when I do this
"Introduction": "{{i18n:Introduction.Popper}}#$action Spiderbuttons.BETAS_Jump FC.Popper",

to make my lil mouse jump happily after introducing himself and then I exit out and load back in his sprite his invisable

urban patrol
#

it might not even be nuclear bomb's fault to be clear, i just have no idea what's wrong

obtuse wigeon
uncut viper
#

that wouldnt have anything to do with BETAS

gray bear
#

oh! yeah that happens PensiveButtPuffer

golden basin
#

oh...I wonder why thats happening then

#

it suddenly says his sprites cant be found at all even though it just was found

#

even is like his portraits are gone! but its there and its his character sprite thats gone

uncut viper
#

all the Jump action does is call Character.jump() on the NPC. doesnt do anything else

golden basin
#

thats so weird then i wonder whats going on

#

i see the issue

royal stump
golden basin
#

my mistake

uncut viper
#

i think it must be a different NuclearBomb mod? because the name of this mod in the manifest is not just "NuclearBomb"

royal stump
#

their custom map edits could theoretically mess with yours, of course, but that "NuclearBomb edited [every asset]" text is unrelated

golden basin
#

he lives

royal stump
#

the github doesn't include all the manifests and the ID is actually "NuclearBomb" for the C# pack on nexus

uncut viper
#

is this not the C# pack?

#

oh nvm i misunderstood

royal stump
#

I'm not sure which manifest is on the github, but yeah, it doesn't match the download

uncut viper
#

wouldnt that mean there could be a non-empty assetrequested in the nexus version then, if its different from the github version

royal stump
#

OnAssetRequested is also blank on github but looks like this in a decompile (possibly as an artifact, but still)

public void OnAssetRequested(object sender, AssetRequestedEventArgs e)
{
    e.Edit((Action<IAssetData>)delegate
    {
    }, (AssetEditPriority)0, (string)null);
}```
#

I assume it's just triggering on literally every asset, from the log

gray bear
#

why would it do this

uncut viper
#

i dont think decompiling would lead to an artifact like that, that seems like whatd be causing that in the log

royal stump
#

...oh SDVpuffersquint it has two dlls, I just noticed

gray bear
#

two of em?!?!

royal stump
#

so yeah, NuclearBomb just isn't on the github that I saw, and NuclearBombLocations is also in there

gray bear
#

2 c# mods

royal stump
uncut viper
#

well on the bright side the empty delegate is doing nothing,, on the dark side it means it was a red herring for nic

urban patrol
#

good to know it's not actually affecting anything, but yeah i'm at a loss for what's wrong lol

#

except for that XNB error they had but it's for Data/Buildings

gray bear
#

could be a mod conflict

royal stump
#

they have enough mods that I'd basically just tell them to trial and error it

urban patrol
#

like remove half the list repeatedly until the issue goes away?

royal stump
#

yep, though it tends to be hard to explain that with how required mods work

#

(e.g. someone removes FTM and it fixes their asset conflicts SDVpuffersquint)

gray bear
royal stump
#

if anyone else manages to reproduce the same issue, comparing their lists can help, so you could save that log for later

urban patrol
#

good idea

#

Thank you for reporting! I couldn't find any errors with my mod in your log, and there are too many mods you have installed that I'm unfamiliar with for me to know the issue. If it's a mod conflict, I recommend trying to narrow down what is causing the issue by removing half of your mod list at a time until you stop seeing the issue. You would have to be careful not to remove required dependencies, though. If you're able to figure out what mod is causing the conflict, I'd love to know so I can take a look at compatibility!

is this clear? i don't think english is their first language so i'm worried

hallow prism
#

if you think they speak another language you can tell them to mention if they need a translation and you see if someone can do it

#

we cover a lot of different languages here after all

urban patrol
#

they commented in (good) english, so i suspect they speak it but it may not be their native language

obtuse wigeon
gray bear
#

(can't expect everyone to do that, would be nice though)

obtuse wigeon
#

(So organised SDVpufferwow )

gray bear
#

Only when it counts?

royal stump
#

iirc that makes tools refund stamina if you don't successfully hit something

gray bear
#

nice

obtuse wigeon
#

Yep! if you dont hit sucessfully or use the wrong tool it refunds the stamina, it's been a life saver (literally) as I miss click so often cause my mouse is a bit naff

worn oar
#

im trying to use the tiled extension for the tile sheets of the island farmhouse interior but it's saying the files can't be found even tho that's where they are? (first is before I do "fix stardew tilesheets", second is after)

cobalt lance
#

anyone know where i can find the ||abigail drumming sprite from sam's 8 heart event||?

cobalt lance
#

oh im dumb, thank u

hard fern
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.

ocean sailBOT
#

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

urban patrol
#

!tilesheetclimbing

ocean sailBOT
#

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

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

worn oar
urban patrol
#

what are you trying to do, create a new map/location? we won't be able to help without knowing what you're trying to do and probbaly seeing your code as well

worn oar
urban patrol
#

was it showing up before?

worn oar
#

when I was getting the errors?

urban patrol
#

ever

worn oar
#

uh no but I didnt try it before I replaced the map with the one I edited from vanilla

urban patrol
#

by replace do you mean you were using EditMap? or were you still using Load

worn oar
#

I mean I replaced the map file that was in the mod I referenced the coding from

#

is it wrong? idk what im doing ngl

urban patrol
#

well tbh i'm not sure if the island farm house is weird like the normal farm house is. if you're not seeing any effect then it's time to figure out why. one possible reason is Load is exclusive priority, so if another mod is also trying to Load the island farm house then neither will apply. if there are no errors in your log, then we'll have to figure out why. you can see if your patch is being applied by typing patch summary YourModId into the SMAPI console, replacing YourModId with your actual mod id

#

using Load has advantages and disadvantages. your mod would not be compatible with any other mod that loads the island farm house, and anyone who edits the island farm house would edit on top of your map

worn oar
#

what should I use instead? sorry I'm very new to this

urban patrol
#

well, if you don't intend your mod to be compatible, then using load is fine. load also allows you to set your map properties inside of tiled instead of editing them in with CP patches. most of the time for maps though people use EditMap and specify the width/height

#

okay so your load is being applied

#

can you send a screenshot of what you see in game vs what your map should look like?

worn oar
#

that's in game

urban patrol
#

it's been a while since i made it to ginger island in game lol

worn oar
#

I'm using vpr if that matters

urban patrol
#

i believe VPR just targets tilesheets and wouldn't have anything to do with the layout of maps

#

what's up with the floor though? are the tiles supposed to look like they have grass underneath?

worn oar
#

no idk some of the flooring is just wonky like that I just dont use those. this interior is untouched tho

urban patrol
#

okay i see

#

let me check the wiki in case i'm missing anything special about the island farm house

worn oar
#

oh I'm also using expanded

#

if that makes a difference

#

but I dont think that edits the farmhouse interior at all

urban patrol
#

i'm wondering if your target is wrong, but i also suspect that the island farmhouse may have something going on behind the scenes because i can't even find data for it in Data/Locations

worn oar
#

I found the file but it's empty

urban patrol
#

oh wait it's under IslandHut

#

the map path is Maps/Island_Hut

#

try changing your target to that

worn oar
#

I thought that was the hut leo lives in

uncut viper
#

thats Leos house

urban patrol
#

oh

#

never mind

#

oh here it is IslandFarmHouse which is what you have

#

i had match whole word on in my original ctrl-F

#

can you try patch summary? i wonder if your load is being overwritten by another mod. we're looking for things that edit Maps/IslandFarmHouse

#

you could also try patch exporting the asset

worn oar
#

idk what that means sorry SDVpufferchickcry

tender bloom
#

!patchsummary

ocean sailBOT
#

Can you do these steps to provide more info?

  1. Load your save and view the content that should be patched.
  2. Type patch summary directly into the SMAPI window and press enter.
  3. Upload your SMAPI log to https://smapi.io/log (see instructions on that page).
  4. Post the log link here.
urban patrol
ocean sailBOT
#

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

urban patrol
#

for future reference, this is usually why people test their mods with minimal mods in their mod folder! that way you can see if what you're doing is working without worrying about a billion other things

worn oar
#

oh sorry SDVpufferfear should I remove everything else?

urban patrol
#

you have another mod that edits the island farm house in there. i think it's Tikamin557.CP.ApartmentHouse

#

if you recognize that mod, it's doing edits on top of your load

#

so you either need to remove that mod or make yours compatible with it

worn oar
#

I dont recognize that at all

urban patrol
#

wait i misread the log on another line

tender bloom
urban patrol
#

hallway fix?

tender bloom
#

Unless it’s not that one after all 😛

worn oar
#

forgot abt that

urban patrol
#

yeah the line wrapped around and i was looking at the latter half of a HasMod condition by accident

tender bloom
#

I wish patch summary would print line by line

#

So that you could use the cool filter tools more easily

urban patrol
#

yeah i'm resorting to firefox search bar lmao

#

so yeah you need to look at how hallway fix patches the map and either remove it or change how you implement your mod

worn oar
#

yay ok I removed it and it works now! ty! I think making it compatible is a bit over my head atm

urban patrol
#

it's fine if you don't want it to be compatible with that mod! that sounds passive aggressive but it's not

tender bloom
urban patrol
#

oh god yeah

tender bloom
#

Usually compatibility is 2nd priority to the mod working, in my opinion

#

Once you get it working you can worry about whether to add compat or not and if so, how. Some mods just are inherently incompatible.

urban patrol
#

looks at the people who install fifteen farmhouse map mods

tender bloom
#

“Make Shane Bright Purple” and “Make Shane Bright Orange” just don’t work together

lucid mulch
#

Got flashbacks to trying to run all the mods together and the arms race the recolours had on cursors was insane

urban patrol
#

if you were curious, though, the way i would do compatibility (depending on how much hallway fix changes) would be:

  1. use EditMap instead of Load, and define your area as whatever about the farmhouse you want to change
  2. make patch priority Late so it applies after hallway fix has already patched the map
scarlet ether
#

Can anyone help me troubleshoot what's going on here? The wall of Tiny Farmhouse 1.6 is default vanilla colour despite Seaside Interiors loading after and affecting the rest of the house normally. I've disabled everything but Tiny Farmhouse, Farmhouse Fixes, Seaside Interiors and GMCM. It's driving me nuts.

lucid iron
#

can you change the wall paper

scarlet ether
#

Yes, but the wall is still yellow at the base.

latent mauve
#

Is anything else patching the farmhouse interior or farmhouse_tiles still?

scarlet ether
#

No, just Tiny Farmhouse and Seaside Interiors.

hard fern
#

The "wall" looks more like the floor? The flooring doesn't seem to extend all the way properly

#

Its probably missing a row of tiledata

latent mauve
#

The bottom tile of the wall is usually partially exposed like that to allow the flooring to show under it.

#

patch export Maps/FarmHouse and see what tile it's using on that wall?

#

If it's missing tiledata, that would also be a way to check that. 🙂

latent mauve
#

Not sure why you're pointing that out specifically, Shrimply? That is vanilla behavior, though, and is why the bottom-most wall tile is on the Buildings layer, so the flooring on the Back layer peeks through.

hard fern
#

I might be confused here, as im not sure what's being talked about here

latent mauve
#

The issue here is that both the wall and flooring tiles on the top wall are not being recolored.

hard fern
#

?

#

I think im missing something

latent mauve
#

The "yellow still being at base" could very well be competing tiledata

hard fern
#

I dont know where the "top wall" is here

latent mauve
#

When I say top wall I am referring to the section of wall visible at the top of the screen, sorry for the confusion.

#

as opposed to the beams/borders at the sides or bottom

hard fern
#

What i was looking at was the floor, just looking at the floor and how it doesn't seem to be replaced all the way back properly (i dont think im explaining this right...)

#

And i know in a map, the floor tiledatas extend up into the wall

scarlet ether
#

None of the tile data is missing. TBF, maybe it's a hardcoded thing, because the vanilla farmhouse walls and floor aren't being recolored at all when I checked. "/

latent mauve
#

ah, gotcha Shrimply, just reread the original post and see where they only said wall.

#

Seaside Interiors is 1.6 compatible, right?

#

It's not something silly like the tilesheet not being fully recolored for farmhouse_tiles.png, or Tiny Farmhouse using a custom tilesheet for the walls?

scarlet ether
#

Yes, Interiors is 1.6 compatible.

#

Tilesheets are fully recoloured and there aren't any custom tilesheets. So IDK what'sgoing on. :/

latent mauve
#

hmm

#

and you're absolutely certain nothing else is patching the farmhouse at this point

#

No kitchen mods or anything that might be overreaching?

scarlet ether
#

No other mods. Just Tiny Farmhouse, Farmhouse Fixes {which is a req'ment for TF}, and Seaside Interiors.

latent mauve
#

hmm

#

Seaside Interiors doesn't look like it has a file for walls_and_floors at all

scarlet ether
#

So the issue was something simple like a vanilla tilesheet not being recoloured?

latent mauve
#

Seems that way, since Tiny Farmhouse or Farmhouse Fixes might be using the wallpaper and flooring from walls_and_floors instead of farmhouse_tiles in that spot?

#

If you right-click on the messed up wall in your patch export, which tilesheet does it say the tile is from?

scarlet ether
#

walls and floors =_=

latent mauve
#

so, easy fix.

#

(I'm also not surprised, since vanilla uses walls_and_floors for that section too, and there is no 'clean' section of wall in farmhouse_tiles without a cabinet or something on it to use instead)

#

and not using walls_and_floors makes it not able to be decorated with new wallpaper later

scarlet ether
#

I'll just have to make a personal patch then. Half my visual setup is personal edits and patches anyway. /sigh

#

Thank you for troubleshooting with me. :3

latent mauve
#

Yep, just make a personal patch over walls_and_floors for those specific pieces.

#

Or if you're gonna make a personal edit anyway, you could go the extra mile and make them brand new wallpapers and floors instead of replacing. xD

scarlet ether
#

Honestly, I just wanna play the game at this point. I've been futzing around for months trying to get everything just right and I'm mostly just done at this point. After this patch I'll finally be able to play pretty Stardew. o0o

oak umbra
#

I'm learning to make a map using Tiled and trying to add some text to it when you right click a building yet some reason it isn't showing up in game. Am I doing something wrong?

latent mauve
#

Is your TileData object on the Buildings layer?

uncut viper
#

the grid-alignment of your TileData also doesnt appear to line up with how it appears in game

#

in game the tile is smaller and perfectly under the window

latent mauve
#

Width and Height being 0 is definitely an issue.

#

Is View > Snapping > Snap to Grid on?

uncut viper
#

oh in fact when opening the image and looking closer instead of the discord preview i can see they are not aligned to the grid

#

and way too large

latent mauve
#

Are you editing the vanilla map?

uncut viper
#

or at least, visually large. not sure whats up with your 0 width 0 height one

oak umbra
oak umbra
tender bloom
#

If it’s not aligned to the grid, it just isn’t registered at all pretty sure

oak umbra
tender bloom
#

I would remake them aligned to the grid

uncut viper
#

it looks like you mightve tried to select your existing TileData but accidentally created a single pixel sized new tileData object

latent mauve
#

Okay, you may need to double check that your grid is matching a vanilla map so that the size is correct.

oak umbra
#

How would I double check?

latent mauve
#

This is from the vanilla Town map if you look at the Map Properties pane

kind shell
#

Does anyone know how I could bypass the blue night filter + rain overlay and have these window overlays stand out like they do in my photoshop sketch ? Right now they're getting ruined by the in game overlay

uncut viper
#

the outlines of the actual tile grid are there, just hard to see in your screenshot, its just that your TileData objects themselves are way off

oak umbra
#

Decided to manually resize them to be 16 by 16

uncut viper
#

they also need to be perfectly grid aligned

latent mauve
#

Yeah, they need to be 16 width and 16 height in the properties.

#

(they can be bigger if they're covering multiple tiles, but that's the minimum, and you want to keep them at multiples of 16, since that's the defined Tile size)

uncut viper
#

(tangential question: if i make a TileData larger to cover multiple tiles, but its like, 3px wider than it should be, does the entire TileData get removed, or just the 3px on the right?)

#

(like if it covers 3.7 tiles wide, do the other 3 stay safe and its just the .7?)

latent mauve
#

(I have no idea, that sounds like something to science)

uncut viper
#

maybe after dinner i will science

#

nvm chu is here chu can science for me

lucid iron
uncut viper
lucid iron
#

one time i helped someone who had ??? passable settings

#

and it turns out it's cus their rectangle is 0.3px above where it should be

#

so the whole thing got applied to 1 row above LilyDerp

ornate locust
#

it definitely does that, I had something barely off like that and it applied a full row over too

patent lanceBOT
lucid iron
#

nou

ornate locust
#

then I found the setting in Tiled that snaps those things

oak umbra
uncut viper
#

or was it ONLY applying to the row above?

lucid iron
#

i have no idea tbh blobcatgooglyblep

uncut viper
#

ill blame the Tiled fairies

ornate locust
#

So I had a 16x16 tile that was just placed like .3 px off

#

And it fully moved it that tile over

#

I don't know what'd happen if it's just too big

uncut viper
#

and didnt apply it at all to the tile you intended?

ornate locust
#

Correct

uncut viper
#

huh

ornate locust
#

It applied only to the other tile

lucid iron
#

i dont think about this very much cus i just turned on snapped to grid and never looked back

ornate locust
#

definitely do that LOL

#

Was a headache to figure out what was happening and when I did, I instantly looked for snap settings

calm nebula
uncut viper
#

SMAPI should patch it to fix it

ornate locust
#

If one tile is fully covered and the square also covers a little of the next tile, it MIGHT apply to both fully, I dunno. It seemed very all or nothing

#

I didn't mess with it more when I realized what was happening

#

I suspect it doesn't do part-tiles at all either way

lucid iron
#

hm so

#

cp migrate building traction(taaction(trigger action action))) more or less works when I change building.buildingType.Value

#

however i feel like i get orphaned farm animals if it had an interior blobcatgooglyblep

hard fern
#

taaction....

brittle pasture
#

yeet them all

#

send them to the farm upstate

uncut viper
#

move them into a global inventory first

lucid iron
#

a global inventory for characters is a waiting room blobcatgooglyblep

brittle pasture
#

special integration with animal husbandry, turn them into m-

hard fern
#

m

lucid iron
#

sending them to the darkwings dimension

hard fern
#

the shadow realm

calm nebula
#

Just dump them on the faem for now

lucid iron
#

also while im at it maybe i should make migrate crop tree fruittree

dusky sail
#

sending out a request for help 🙏 i want to set up a forage item that only shows up near the dragon skeletons in the volcano similar to the vanilla dragon tooth. is this something that's possible with farm type manager/how would i do it

uncut viper
# uncut viper what. why does TileData normally get yeeted if its misaligned then. does it just...

so, the decimals first get lopped off the TileData coordinates since its cast to an int, and then divided by 16 and then the decimals of that result lopped off once more
so if your TileData is at tile x5, y5 and aligned itll be x80 and y80. if its slightly off, at say x82.99 and y79.14, then xTile will take 82 / 16 = 5.125, lop off the decimals, 5 is the x coordinate of this TileData
then 79 / 16 = 4.9375, lop the decimals, 4 is now the y coordinate of your TileData
then it checks if there is a tile on the correct texture layer at 5, 4. which there probably wont be, since that wasnt the tile you cared about. but if there was something painted there, then the TileData would exist, it would just be 1 tile higher in game (since positive Y = down) than you thought it would be. this is assuming your TileData is still 16 wide and 16 tall, though, just misaligned, but the same applies for larger TileData spans

basically: if the TileData is a lil to the left or above, things will be shifted one tile to the left or above respectively. if its a lil to the right or below, itll actually still turn out fine. if you have TileData that spans multiple tiles that is a little to the left, the entire block of TileData is shifted to the left, and similar for if the block is a lil above. but if the block as a whole is a lil to the right or below, itll be fine. if things are shifted and there are tiles on the right layer where the data was shifted to, itll still appear, otherwise its yeeted

#

as for TileData that is mostly aligned except for one edge that peeks over the grid, thatll also cause the same shifting if its peeking out on the left or the top edge. if you have a 3x2 grid of TileData but the right-most edge is 3px too wide, it'll just ignore those 3 pixels

#

pictured: TileData that will actually work believe it or not (itll cover the top half of the cactus and the tile to the left of that one)

calm nebula
#

Button

#

No melons for you

dusty scarab
#

does anyone know where I can find a list of event IDs that will work with the PLAYER_HAS_SEEN_EVENT game state query?

#

vanilla event IDs

vernal crest
#

Any event ID?

#

Go to Data/Events/ and then open the desired event location file and find the event id you are after?

dusty scarab
#

yeah, I want to find the ID for the scene during the community center unlock where you learn to speak Junimo. unless there's an easier way to check that game state?

uncut viper
uncut viper
dusty scarab
#

...I suppose PLAYER_HAS_MET works for that, too, because you meet the Wizard during that event and can't meet him any earlier

uncut viper
#

if you find the event ID for that community center event itd be just as viable

#

you can definitely meet him earlier with mods

oak umbra
#

Anyone know what these blocks are? I don't seem them in Tiled

uncut viper
#

thats a forage from a mod you uninstalled

#

presumably

oak umbra
#

Thanks

vernal crest
#

Isn't it the event in the wizard tower that lets you read the junimo language?

vernal crest
#

He gives you that potion

uncut viper
#

(i actually dont think its that bad of an idea, aside from whether or not you think itd be bad to make people NOT worry about grid alignment)

latent mauve
#

That's the Forest Magic wallet item/power.

calm nebula
dusty scarab
vernal crest
#

Then you need to look in Data/Events/WizardHouse to find the event ID

uncut viper
#

(and aside from, yknow, the fact that itd really need to be SMAPI that did it for it to get any use, and it doesnt seem like the kind of thing Pathos would want SMAPI to do)

calm nebula
#

Just align it

lucid iron
latent mauve
#

mail flag: canReadJunimoText

ivory plume
latent mauve
#

just barely ninja'd Pathos. SDVkrobusgiggle

lucid iron
#

and it supports custom light maps if you wanna draw smth

dusty scarab
#

because my brain does not want to cooperate, this is the correct formatting for the letter to be sent once the player has both unlocked reading Junimo text AND has combat level 2, correct? I'm not missing anything in the Conditions line?

uncut viper
#

missing the player argument on the combat level

dusty scarab
#

thank you

#

I knew I was missing something, but I couldn't see it

kind shell
# lucid iron i think you need to add a light source for this, which you can do with MMAP

if i add lights to the farmhouse window via map edits, would a player be able to move the farmhouse and the lights move with the farmhouse? I'm thinking I may have to use some c#? I saw some code on github for a mod that added lights to ladders, so of course it was positioning the lights dynamically but there was a render infront function (drawAboveAlwaysFront = true) , now i'm wondering if i could mahe that apply to my content patcher overlay without having to position the png. via making it a TemporaryAnimatedSprite or something, I haven't done a script mod for stardew and I've been trying to find a way around it for such a simple effect but it's not looking good

lucid iron
#

it's not a map edit

#

it's a building data edit

#

that is why you needed extra framework

kind shell
#

Ohhhhhhh i see

#

okay cool i'll dig through their docs

#

thanks!

lucid iron
#

(it's my docs)

kind shell
#

Ahhh Thank you for making thissssss

#

I'm combing thru

kind shell
#

Okay thank so much, I'll try to get it workin'

tired matrix
#

Does anyone know why the house looks like this? Modded

vernal crest
#

DId you start a new save after adding the house to the map?

tired matrix
#

Ah makes sense i didnt

vernal crest
#

Things on the paths layer of maps are generated at the start of a save so anything placed by Paths stays there

tired matrix
#

At least it works yayy

winged charm
#

hey I'm trying to load my npc but I keep geting somekind of error while loading into the map. I think it's something to do with the portraits, but I have no clue

[game] Failed to spawn NPC 'Aiden.Haydel_NPCAiden'.
Microsoft.Xna.Framework.Content.ContentLoadException: The content file was not found.
 ---> FileNotFoundException: Could not find file 'D:\Program Files (x86)\Steam\steamapps\common\Stardew Valley\Content\Portraits\Aiden.Haydel_NPCAiden.xnb'.
File name: 'D:\Program Files (x86)\Steam\steamapps\common\Stardew Valley\Content\Portraits\Aiden.Haydel_NPCAiden.xnb'```
dusty scarab
#

I can use the PLAYER_HAS_MAIL query to check to see if a player's recieved a modded letter, correct? I'm assuming the mail id argument would be the ID of the modded letter

uncut viper
#

yes

#

as with most things, the game has no way of telling the difference between something modded and something vanilla

dusty scarab
#

thank you, I just wanted to double check and make sure before I went off on this line of thought :D

lucid iron
#

is there some kinda schedule thing that turns the npc invisible

uncut viper
vernal crest
winged charm
#

That would be something to fix with my content.json right?

uncut viper
#

your content.json or wherever else you put the patches

winged charm
#

Could that affect what I have in my disposition?

#

And thank y'all for the help as always SDVpufferheart

vernal crest
#

No, they're not related to your Data/Characters patch (your disposition)

winged charm
uncut viper
#

your first and 3rd patches

#

its loading to Characters/{{ModId}}_NPCAiden twice

#

the validator will never tell you about an error like this, it only warns you of syntax errors

#

not really logic errors

vernal crest
#

Judging by your third patch having a logname of "base portraits" and you having no portraits Load, I think you accidentally set the Target of that one to "Characters/{{ModId}}_NPCAiden" when you meant for it to be "Portraits/{{ModId}}_NPCAiden"

winged charm
#

It loaded!! I needed "Portraits/{{ModId}}_NPCAiden" instead. Now I just need to make the NPC interactable

unborn dune
#

any guide on how to make npc mod

torpid sparrow
#

!npc

ocean sailBOT
#
Creating a Custom NPC

Keep in mind that making NPCs is a complex process that requires learning many different aspects of Stardew modding.
Here are a few links that can help get you started on all that you need to know:

lucid iron
#

public static void AddModNPCs() what is this for NotteThink

#

it's empty

brave fable
#

in what context?

calm nebula
#

Didn't smapi used to patch that to add mod npcs lol

#

Has anyone made a sourdough mod

#

Or a realistic melons mod. And by that I mean vines everywhere

brave fable
#

oh, a base game method. there's a few of those around, no clue which are vestigial and which are still used by SMAPI

calm nebula
#

Smapi patches nothing no more, iirc

torpid sparrow
#

i think there's a bread mod that adds sourdough but not a whole range of different sourdoughs

calm nebula
#

With the exception of the runtime so harmony works

#

(Mini mono hotfix)

tiny zealot
#

ok atra i was gonna say it has one harmony patch left which is to make harmony work lol

calm nebula
#

Ichor! Man of the hour! I'll have some free time this weekend so I'm considering making bread!

tender bloom
#

Bread sounds tasty 🥖

calm nebula
#

Hi classical!

tiny zealot
#

i see people have been discussing sourdough without me. shame /j

brave fable
calm nebula
#

But, consider, realistic sourdough mod

torpid sparrow
#

sourdough system where u feed the starter and must knead every n hours

calm nebula
#

Also it's incredibly unrealistic that stardew melons only produce one

tiny zealot
#

at least summer squash is a regrower

#

pumpkins yielding only one is also a choice

calm nebula
#

I think Elizabeth once make a zucchini mod

tiny zealot
#

we have one (1) pumpkin plant in our garden and it has become the emperor. the garden belongs to the pumpkins now

calm nebula
#

That's about right tbh

oak umbra
#

For some reason SMAPI is ignoring the warp I created for my mod that I put in the town. Any reason why?

round timber
#

remove the colon after EditMap

#

also id suggest using a name thats a bit more unique than Custom_Village for compatibility reasons

tiny zealot
round timber
#

oh yeah that too lol

oak umbra
tiny zealot
#

can you tell us what guide you used, so we can excise it?

oak umbra
upbeat nymph
#

@astral peak thanks

oak umbra
#

Just a tutorial that I've been following

lucid mulch
# lucid iron `public static void AddModNPCs()` what is this for <:NotteThink:6313669690479083...

got 1.5.6 loaded up.

Not sure whether other mods like SMAPI or PyTK would be patchcing it or not, but it specifically diffs the main content managers version of NPCDisposition with a true vanilla version and spawns them into the game

It predates the more generic code in Data/Characters which spawns all villagers, vanilla or modded.
as 1.5.6 was all hardcoded spawns of locations and NPC's

Game1.locations.Add(new GameLocation("Maps\\AnimalShop", "AnimalShop"));
Game1.locations[Game1.locations.Count - 1].addCharacter(new NPC(new AnimatedSprite("Characters\\Marnie", 0, 16, 32), new Vector2(768f, 896f), "AnimalShop", 2, "Marnie", datable: false, null, Game1.content.Load<Texture2D>("Portraits\\Marnie")));
Game1.locations[Game1.locations.Count - 1].addCharacter(new NPC(new AnimatedSprite("Characters\\Shane", 0, 16, 32), new Vector2(1600f, 384f), "AnimalShop", 3, "Shane", datable: true, null, Game1.content.Load<Texture2D>("Portraits\\Shane")));
Game1.locations[Game1.locations.Count - 1].addCharacter(new NPC(new AnimatedSprite("Characters\\Jas", 0, 16, 32), new Vector2(256f, 384f), "AnimalShop", 2, "Jas", datable: false, null, Game1.content.Load<Texture2D>("Portraits\\Jas")));
Game1.locations.Add(new GameLocation("Maps\\LeahHouse", "LeahHouse"));
Game1.locations[Game1.locations.Count - 1].addCharacter(new NPC(new AnimatedSprite("Characters\\Leah", 0, 16, 32), new Vector2(192f, 448f), "LeahHouse", 3, "Leah", datable: true, null, Game1.content.Load<Texture2D>("Portraits\\Leah")));   

AddModNPCs was a more generic method to do it based on disposition info but couldn't delay doing it (eg Kent)

astral peak
round timber
oak umbra
#

Noted

brave fable
round timber
#

the sdv wiki is generally up to date yeah

oak umbra
#

Thanks

vernal crest
oak umbra
#

Thank you

kind shell
urban patrol
#

is that all of your code, or is there more? you're missing Changes in that (but if you just put the snippet in there, ignore me)

kind shell
#

yeah it's just a snippet

urban patrol
#

okay. are you sure that your FromFile path is correct?

vernal crest
#

That doesn't look anything like the example chu gave you

kind shell
#

I can send the rest, cause it could just be a careless mistake somewhere else

vernal crest
#

It looks like you may have mixed up map TileProperties and building TileProperties

kind shell
#

i did have a mistake in the fromfile and i've fixed it now, still not showing up, they sent me a part of the docs that referenced "Front or Back layer: mushymato.MMAP_Light [radius] [color] [type|texture] [offsetX] [offsetY] [lightContext]", it is true i have 3% idea what I'm doing so, i'm just tryna figure out how to like properly implement that

vernal crest
#

Chu also sent you an example of how to implement it

#
{
      "Action": "EditData",
      "Target": "Data/Buildings",
      "TargetField": [
        "Well",
        "TileProperties"
      ],
      "Entries": {
        "{{ModId}}_Light": {
          "Id": "{{ModId}}_Light",
          "Name": "mushymato.MMAP_Light",
          "Value": "4 Green Characters/Junimo",
          "Layer": "Front",
          "TileArea": {
            "X": 1,
            "Y": 1,
            "Width": 1,
            "Height": 1
          }
        }
      }
    },
kind shell
#

Thanks 😅

vernal crest
#

Your patch should look like this but edited to match what you need (e.g., TargetField "FarmHouse", not "Well", etc)

kind shell
#

okay i'll try to get it workin' agian

#

thanks for your patience 😅

latent cape
kind shell
#

I'm getting an error that "FarmHouse" doesn't exsist in TagetField, is there an alternative name for the farmhouse in this context?

brittle pasture
#

it's Farmhouse, not FarmHouse

#

(the H is not capitalized)

vernal crest
#

Oops sorry

kind shell
#

I see okay! np

vernal crest
#

(Blame CA for Farmhouse but TileSheets confusing me /j)

tiny zealot
#

don't feel bad. the location is called FarmHouse, after all

#

it's just the building that has lowercase h

lucid iron
#

i need a "how cursed is this" check LilyDerp

vernal crest
# latent cape Hello uh is this like the proper way to do the updated dialogue question? A bit ...

Close! You can only have one fallback (that's the line that plays next time the player sees the Mon2 dialogue) so "Badfarm_fallback": "I'm sure you'll do great, practice makes perfect.$4" will never get seen. Instead, write it like this:

{
  "Mon2": "Good day, @.$4#$b#$q {{ModId}}_GoodFarm/{{ModId}}_BadFarm FarmQuestion_fallback#How do you manage the farm so far?#$r {{ModId}}_GoodFarm 10 Goodfarm#It's great! I'm slowly getting the hang of it..#$r {{ModId}}_BadFarm 0 Badfarm#It's still hard for me to do.. there are so many things to do at once",
  "Goodfarm": "That's great to hear. I'll be looking forward to your best product$1",
  "Badfarm": "Oh... that's too bad..$8#$b#well.. if you need anything, I can help you with some of the stuff if you like.",
  "FarmQuestion_fallback": "$p {{ModId}}_GoodFarm#I see that you already adjusting to the responsibilities of a farmer. Well done.$11|I'm sure you'll do great, practice makes perfect.$4" // This will check if the good farm answer was chosen. If it was, it will play the line before the | otherwise it will play the line after it.
}

(I also changed it so you're using unique IDs for the dialogue answers instead of numbers, because that's the recommended practice.)

lucid iron
#

atm i made Child -> NPC work like this
(dw about multiplayer for now)

  • at LoadStage.SaveLoadedLocations i iterate all the child (which are Characters in FarmHouse and loaded at this point) and build a childId -> childNPCId (which contains the unique multiplayer id of the parent farmer) mapping (ChildToNPC), then invalidate Data/Characters and Data/NPCGiftTastes
  • in asset requested i do edits to those based on ChildToNPC, i also forward some assets from Characters/Dialogue/childId to Characters/Dialogue/childNPCId
  • in day started, i force reload the child npc instance (which would have spawned with no dialgoue/schedule/gift taste)
#

there's some additional jank like giving a default Portraits/png or Characters/png asset

#

now im wondering if it'd be a lot easier if i just store info about children on the farmer, who i understand is initialized much earlier in the save load

latent cape
vernal crest
latent cape
tiny zealot
lucid iron
#

all i actually need is a list of child ids

#

i have a second Dictionary<string, CharacterData> for children, so it's the key to this asset

#

and child npc id is just mod id + child id + unique multiplayer id

tiny zealot
#

using loadstage and forcing cache invalidation to reload affected assets smells fairly cursed to me (classic J-Club-level shenanigans) but the j club is sort of supposed to be cursed and i'm not sure there's a better solution for this sort of thing tbh

lucid iron
#

yea i dunno™

#

even in the farmer moddata case im gonna have to do it at some wacky load stage

kind shell
lucid iron
#

but it'd be earlier, SaveLoadedBasicInfo

#

you installed mmap right

#

oh the name's wrong too

#

"Name": "mushymato.MMAP_Light" this is important Dokkan

#

in the example, Characters/Junimo is the light texture, you'd have to load or {{InternalAssetKey: assets/windowfeatures/lightson.png}}

kind shell
#

yes it is installed, okay I will revert name to what it should beee

lucid iron
#

i feel it would be useful if there's no particular restriction on the NPC version of the kid, while the Child is still in use for "stay home" days

uncut viper
#

you can now ez bz beb all your bobbers with bebber bobbers
i actually made a mod to go with it this time, too: Pokéball Bobbers!

Nexus Mods :: Stardew Valley

A framework for mod authors to add custom bobber styles for the fishing rod.

#

please be in awe of my preview image, graphic design is my passion as you can clearly tell

#

this is about the limit of my artistic ability

brittle pasture
#

boble

uncut viper
#

bibble

brittle pasture
#

bibie

#

ok enough deltarune references do you want a showcase

oak umbra
vernal crest
#

Yes, right now you have no location for your map so it won't really exist in game. You need a Data/Locations entry,

uncut viper
vernal crest
#

Also, you should not replace {{ModId}} with your mod's ID. It's a token that will do that for you.

gentle rose
#

(is it not missing the format and changes field, aba?)

vernal crest
#

It is, you're right iro

gentle rose
#

I had to check because I'm on mobile and it's showing up as a total of three pixels haha

uncut viper
#

(i forgot the showcasing would remove the nexus embed text, i probably shoulda edited in that its a bobber style framework to actually, yknow, explain what it does. oops. oh well)

gentle rose
#

hard to tell like this

vernal crest
#

And yet you still spotted it and I didn't haha

uncut viper
#

you cant read that? it says LogWvmr, Artior, Targul, and FronF1lo

kind shell
#

i finally got a light to show up!

royal stump
#

(🔎 "Targul": "Maps/{{Wackowy[yoshi egg emoji]2004.TheMedical}}Map")

uncut viper
#

it does look like a yoshi egg emoji

#

i can see it

vernal crest
oblique meadow
#

Before I take the time and go down the rabbit hole. Are there any pre-existing frameworks or anything I should be aware of for things like auto watering or auto fertilizer

#

I checked the wiki and did a small search on nexus and found nothing

drowsy pewter
#

What is the title of gus's job? Is he a bartender?

brittle pasture
#

he calls himself a bartender in one of his liness

#

though I assume he does more than tend the bar

drowsy pewter
#

Perfect!

brittle pasture
#

his intro line also has him introduce himself as a chef

#

food and drinks, he does it all basically

drowsy pewter
#

Cant wait to add his famous zucchini fritters to the game

#

Artichoke Dip! This is a delightful way to get more artichokes into your body. Personally, I don't even dip anything in there. I just guzzle the sauce down like it's a milkshake. Delicious.
The queen of sauce is too real for this

humble timber
#

yeah i assume his job is similar to my first one (i was a hotel restaurant worker who did cooking, bartending, being a barista in the mornings. we did it Aalll)

dusky sail
#

Plus he's probably the owner and manager

humble timber
#

tru. busy guy

dusky sail
#

I don't have a source for that. It's just an assumption

humble timber
#

he does talk about the finances

uncut viper
#

please use the smapi uploader and not send giant jsons in here

#

!json

ocean sailBOT
#

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

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

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

oak umbra
brave fable
#

bery bleased sombeone bade a bod to bake by bobbers bebber

obtuse wigeon
brittle pasture
obtuse wigeon
#

That's exactly the meme that came into my head too, I love it so much, always makes me giggle

hard fern
#

Bondulance....

#

I have never heard of this meme...

obtuse wigeon
#

You clearly have a life and aren't chronicly online, I envy you

hard fern
#

I looked it up qnd i think ive seen the meme a grand total of ONCE

#

LOL

dusty scarab
#

all I can imagine is James Bond popping out of the back of an ambulance to do Cool Spy Things to some bad guy who thinks he's won the war

#

like, that 'someone call an ambulance! ...but not for me!' sort of deal
edit: also looked it up, my guess was halfway right, at least XD

grand iris
#

how do i get to grampleton

#

fields

vital lotus
#

The recipe I got keep showing wrong on the shop. Here's the patch exported the Data/CraftingRecipes

  "ItsBenter.ShellCollection.CP_SandBucksParcel": "ItsBenter.ShellCollection.CP_SandBucks 5 428 1/null/ItsBenter.ShellCollection.CP_SandBucksParcel/false/null/",```

This the patch for fish shop:
            "{{ModId}}_NauticalScarecrow": {
                "Id": "{{ModId}}_NauticalScarecrow",
                "ItemId": "(BC){{ModId}}_NauticalScarecrow",
                "Condition": "PLAYER_HAS_SEEN_EVENT Current {{ModId}}_GiftFromWilly",
                "IsRecipe": true,
                "Price": 500,
            },
            "{{ModId}}_SandBucksParcelRecipe": {
                "Id": "{{ModId}}_SandBucksParcelRecipe",
                "ItemId": "{{ModId}}_SandBucksParcel",
                "Condition": "PLAYER_HAS_SEEN_EVENT Current {{ModId}}_GiftFromWilly",
                "IsRecipe": true,
                "Price": 550
            },```
grand iris
#

my message just got sent to the top of the chat

#

how to get to grampleton fields

vital lotus
grand iris
#

oh

#

thanks

hallow prism
#

or by using the field in the addition to the shop

#

let me search the field

#

"ObjectInternalName": "Cookies",

vital lotus
#

@hallow prism adding the ObjectInternalName works... Thank you SDVemoteheart

hallow prism
#

you're welcome 🙂

#

i got puzzled a lot by this error early on when i first did recipe on 1.6, so now i tend to be a little goblin when i see the "my recipe is sap and wood" issue 😄

vital lotus
#

Appreciate ur testing on 1.6. Now I can sleep soundly

drowsy pewter
#

can attest lumina is a goblin for the torch recipe

latent cape
#

So I stumbled upon a bug in one of my events that used the changeLocation command. The event happens at night, but when the character warps into the change location, the environment changes into day. Can anyone help me on how to fix this or does this have something to do with the ambientLight command?

Nevermind, fixed it!

gentle rose
#

production ready /lh

lucid mulch
#

looks like some 1.5.6 code I looked at earlier

gentle rose
#

(this is just a placeholder until I design the data model I'm going to use for this)

calm nebula
#

Looks like some code i wrote last week before I abstracted it to json

lucid iron
#

Why r u doing this instead of 1 spritesheet wouldn't it be easier LilyDerp

gentle rose
#

I may have a look a merging them at some point but for now it's easier to leave them separated

finite ginkgo
#

Yeah I think chu was asking why separate sprite sheets and not one unified sprite sheet SDVpufferlurk

#

Don't personally see how separate is easier

lucid iron
#

I am bully iro again dw about it kyuuchan_run

gentle rose
#

mostly because these are frames of an animation for the entire spritesheet which already has a set format, so it was easier to just work with the existing format until I get around to thinking about data models etc and will also think about this kind of stuff

#

each one of these is a portrait sheet

lucid iron
#

Just steal the draw layers logic maybe

gentle rose
#

it wouldn't be complicated, this entire thing is just a placeholder for now SDVpuffersquee while I implement the actual logic

#

making all the formats sensible is the next step on my todo list after making it work in splitscreen

icy spade
#

Hello! I have a quick question, as someone who's knowledge of programming and modding in general is very limited, how hard would it be to make my own simple ressource pack/mod that replaces textures to the game ?
Is there a documentation or some guide somewhere to make the process easy ?

hallow prism
#

you wouldn't need real coding, but will need to learn how Content Patcher is working

#

!unpack is also a needed step

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!

humble timber
#

!startmodding uuh is this the right command

ocean sailBOT
#

Making mods can be broadly divided into two categories:

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

icy spade
#

I see, i'll look into this
Also if you're familiar with the process, how hard is it to change a texture and then see how it looks ingame; like does it changes it instantly ingame or do you have to relaunch the game every time?

hallow prism
#

!patchreload

#

i hate you bot

icy spade
#

haha

humble timber
#

lmao

hallow prism
#

!reload

ocean sailBOT
#
How do I reload my changes while I'm still in game?
  • Content Patcher pack: enter patch reload <your_mod_id> in the SMAPI console window. This will reload and reapply all your patches (but won't recalculate the ConfigSchema or DynamicToken sections if you use them).
  • Translation files: enter reload_i18n in the SMAPI console window. If it's for a Content Patcher pack, also run patch reload afterwards.
  • C#: see the Visual Studio hot reload or Rider hot reload feature.
icy spade
#

wow awesome

hallow prism
#

most stuff should be able to be refreshed this way

icy spade
#

i'll look into all this and come back if i have issues, thank you everyone

humble timber
#

yee , we'll be here if u need help

icy spade
#

oh and last thing, i don't know how the tilesets works in stardew but is the process to change the ground textures like the grass and paths as easy? because from what i've seen there's a bunch of mods that changes buildings and assets but few that changes the actual tiles

hallow prism
#

it's a bit easier to change separate pieces like buildings

#

than grass and such that are scattered everywhere

icy spade
#

i see

#

i'll experiment a bit and we'll see how it looks

humble timber
#

if you wanna make a recolor specifically yea thats a bit more involved (speaking from experience here)

#

id recommend starting with a simpler patch first to get the hang of json

icy spade
humble timber
#

ahhh yeah that would be even more effort depending LOL. same amount of work 'code'-wise tho

#

i guess my recolor is more of a retexture technically speaking. but its really just a Frankenstein using fall grass but recolored to replace winter snow SDVpuffersquee

icy spade
#

oo

#

wait i've seen your work before on nexus i think

humble timber
#

haha possibly i have a random assortment of mods!

icy spade
#

good to know that i can directly ask very experimented people lol

#

anyway thanks for the help

humble timber
#

of course!

zenith venture
#

Hello! Sorry, I have a question. How does one know the coordinates of an object in TileSheets? I'm reading the Content Patcher GitHub tutorial, and they give this example:

FromArea": { "X": 0, "Y": 0, "Width": 16, "Height": 16 }, // optional, defaults to entire FromFile
"ToArea": { "X": 256, "Y": 96, "Width": 16, "Height": 16 } // optional, defaults to source size from top-left
}

But how can I know the areas of the object I want to edit in a tilesheet?

gentle rose
#

progress/more new toys to play with bounce (ian portrait by @safe kraken) it even works in splitscreen now

vernal crest
zenith venture
#

Ohhhh, I see. Thank you! I'll try to see if I can manage it. ^^

icy spade
#

argh i tried using alternative texture but content patcher is much easier for what i'm trying to do

#

For testing purposes i'm using daisyniko's earthy recolor and modifying the textures but i can't reload it, it says the id is wrong althought i'm using the unique id found in the manifest.json

vernal crest
#

Can you share exactly what you're entering into SMAPI?

icy spade
calm nebula
#

Remoce the <>

icy spade
#

oh yeah that's it

#

sorry guys im big stupid

calm nebula
#

(No worries!)

stuck thunder
#

Is there a way to easily change every asset in the game using a prebuilt structure and some already made code?
I really don't want to have to manually put every single asset in the game into a json file.

lucid iron
#

Your usecase seems fine for TargetWithoutPath

#
{
"Action": "EditImage",
"Target": "Animals/Blue Chicken, Animals/Brown Chicken",
"FromFile": "assets/Animals/{{TargetWithoutPath}}"
}
#

You can keep putting more , delim targetd

stuck thunder
lucid iron
#

ls -1 Dokkan

#

But if you want everything to be grayscale maybe just use nightshade

stuck thunder
#

Time to think of a new funny mod idea then

obtuse wigeon
#

Is there a simple framework (not many things it's able to do) that allows content packs to modify things they couldn't without it, thats also source available? I want to have a look at how content packs access frameworks and how they return data

brittle pasture
obtuse wigeon
#

Didn't realise there was a dedicated wiki page, thank you!

#

oh it's on wiki.gg that's why I didn't realise

lucid iron
#

What's the thing you wanna make

upper forum
#

Ok I feel like I'm going crazy- can anyone tell me if I'm doing something wrong? This is a mod that adds HD portraits to an existing custom NPC. All other festivals are working fine, but for some reason the flower dance portrait just won't show up lol. It just defaults to the spring portrait. I've got this code in my config.json file alongside the other festivals, and they all seem to work fine. It's just this festival which is broken for some reason lol

        "Action": "EditImage",
        "Target": "Mods/Duruz/Quinn_base",
        "FromFile": "assets/Portraits/Quinn_flowerdance.png",
        "Update": "OnLocationChange",
        "When": {
            "DayEvent": "flower dance",
            "LocationName": "temp",
        }
    },```

I'm using the HD Portraits format for Portraiture because PortraiturePlus conflicts with a bunch of other mods, so using that instead for festival outfits is kind of a no-go.
obtuse wigeon
# lucid iron What's the thing you wanna make

Sorry haven't looked back at the server in a while, I have an idea in mind but I'm nowhere near to actually starting it, I just wanted to read up on how frameworks function and get a general understanding behind them for when I do make one

upper forum
#

The png is correctly named, I know that much. And I have it listed properly in the portraits.json file too so it should load using Portraiture's HDPortraits compatibility

#

Like, for all intents and purposes this should override the default portrait, right?

gentle rose
stark spindle
#

Hey, Quick question if you null out an event does it still count as seen?

gentle rose
#

because this requires the player to be in a location with that name

uncut viper
#

if the player has ALREADY seen the event before installing your mod, itll still count

upper forum
stark spindle
gentle rose
#

idk though SDVpufferthinkblob

upper forum
#

Hmm, I can try it real quick

#

hmm, no dice D:

uncut viper
#

the location is called "Temp" not "temp"

upper forum
#

The base mod is using the correct portrait, it's just the HD portrait that's not working

uncut viper
#

possibly relevant

upper forum
blissful panther
upper forum
#

this is so weird. Like, this should be working, right? It should be automatically applying the portrait as soon as the festival starts

gentle rose
blissful panther
#

Closeup interactions on items!

gentle rose
#

oh nice, yeah I thought I didn't recognise that message!

calm nebula
#

We're looking at Dh's farm

blissful panther
#

The farm is also a sneaky backdrop, yes. SDVkrobusgiggle

lucid iron
#

DH can you add paged close ups

blissful panther
#

Yup, that's the next step!

#

To items, at least. They're already a thing in general obviously.

lucid iron
#

Yay

blissful panther
#
{
    "Action": "EditData",
    "Target": "Data/TriggerActions",
    "Entries": {
        "DH.Test.PurpleSlimeEgg.CloseupInteraction.Trigger": {
            "Id": "DH.Test.PurpleSlimeEgg.CloseupInteraction.Trigger",
            "Trigger": "spacechase0.SpaceCore_OnItemUsed",
            "Condition": "ITEM_ID Input 439",
            "Actions": [
                "MEEP_CloseupInteraction_Action"
            ],
            "CustomFields": {
                "MEEP_CloseupInteraction_Image": "Mods/MEEP/SlimeEggCloseup",
                "MEEP_CloseupInteraction_Text": "Maybe I can hatch this..."
            },
            "MarkActionApplied": false
        }
    }
},
{
    "Action": "EditData",
    "Target": "spacechase0.SpaceCore/ObjectExtensionData",
    "Entries": {
        "439": {
            "UseForTriggerAction": true
        }
    }
}

I think it's about the nicest way I can do it as far as the CP goes... without changing too much.

calm nebula
#

Dh it looks like to get yarn i need to go to London myself 🙁

blissful panther
#

Oh yeah, hold on!

upper forum
#

is it possible to have a "when" field that references a specific day, not just an event? Is there somewhere that I can see the syntax for that?

#

so I could brute-force the portrait to just load on spring 24 instead of the flower dance. It's not perfect but it's better than nothing 🤔

hallow prism
#

yes there is

upper forum
upper forum
#

but this does lmao

#

kinda brute forced it. no clue why Spring outfit was being prioritized over the festival outfit no matter what lol, but it works!

oblique meadow
#

Hey all I could use help. I've been staring at https://stardewvalleywiki.com/Modding:Buildings for a while...and to the best of my knowledge i'm doing this right...Robin registers and processes the upgrade. Everything completes and goes through...but it still only shows my default map. Im not sure what im missing:

//Load Greenhouse Maps
        {
            "Action": "Load",
            "Target": "Maps/Greenhouse",
            "FromFile": "assets/EG_Greenhouse0.tmx"
        },
        {
            "Action": "Load",
            "Target": "Maps/Greenhouse1",
            "FromFile": "assets/EG_Greenhouse1.tmx",
            
        },
        {
//Add To Robin
                "Action": "EditData",
                "Target": "Data/Buildings",
                "Entries": {"Greenhouse1": {
                    "BuildCondition": "PLAYER_HAS_MAIL Any ccPantry Received",
                    "Id": "Greenhouse1",
                    "Name": "Greenhouse Expansion 1",
                    "Description": "Slightly Bigger",
                    "Texture": "Buildings/Greenhouse",
                    "DrawShadow": true,
                    "UpgradeSignTile": "4.8125, 2",
                    "UpgradeSignHeight": 20.0,
                    "Size": {"X": 7,"Y": 6},
                    "FadeWhenBehind": true,
                    "SourceRect": {"X": 0,"Y": 160,"Width": 112,"Height": 160},
                    "Builder": "Robin",
                    "BuildDays": 2,
                    "BuildCost": "1",
                    "BuildMaterials": [{                            
                    "ItemId": "(O)388",
                    "Amount": "2"},],
                    "BuildingToUpgrade": "Greenhouse",
                    "MagicalConstruction": false,
                    "HumanDoor": {"X": 3,"Y": 5},
                    "IndoorMap": "Greenhouse1",
        },},},
                                
        
    ]
}```
safe kraken
#

There's some stuff it may be happening here

#

ups wrong channel

devout otter
zenith robin
oblique meadow
#

So there's no way to have it force load without reloading the save?

zenith robin
#

not that I am aware of, I got around it by making it an entirely new building and removing the base one on save load after moving everything over to the custom one.

lucid iron
#

You can fake an upgrade sorta

#

Rather than construction, do some other thing to set a mail flag and then do a map edit by that flag

obtuse wigeon
#

I have a question about how SMAPI parses the manifest.json files, does it ignore white space, new lines, and indentation? can a manifest be written entirely in one line if it ignores these? Or are these needed for the manifest to be recognised correctly?

lucid iron
#

It's a json file, so it doesn't care about whitespace normally

zenith robin
#

I initially did that with special orders as well.

obtuse wigeon
#

perfect thank you!

zenith robin
#

Does anyone know why when I force a crop to harvest stage the sprite vanishes?

#

any other stage the sprite simply updates to the correct sprite, but not havest

lucid iron
#

How are you forcing it?

#

Vanish sounds like you have transparent sprites at the expected position

zenith robin
#

I am updating the dayofCurrentPhase and currentPhase for the crop and then running updateDrawMath on the crop

#

let me look at the sprite sheets again

#

I see what I did. TY. I didnt check if it was null so for some crops the final value works and others it is 1 befoe final

weary pivot
#

Hello. Am currently trying my luck with making a CP mod that changes some UI elements of other mods using EditImage to use recoloured ones to make them fit some recolor mods better. I got lucky with Generic Mod Config Menu's buttons because the path for the button assets were spelled out in its AssetManager file, but there's no such thing in Deluxe Journal so I'm having a hard time figuring that one out. Still barely beginning to learn to read c# but it seems that I might not be able to because it's in an 'internal sealed class'?

Also is doing something like this ok? Currently it's for personal use but I'm wondering if it's worth turning it into something others can use so that people can just do a quick install instead of having to backup/delete/replace the original assets.

oblique meadow
# lucid iron Rather than construction, do some other thing to set a mail flag and then do a m...

Thanks for this. I wound up getting it working with { "Action": "EditData", "Target": "Data/TriggerActions", "Entries": { "{{ModId}}_SetFlag": { "Id": "{{ModId}}_SetFlag", "Trigger": "locationchanged", "Condition": "BUILDINGS_CONSTRUCTED All Greenhouse1 1 2", "Action": "AddMail Current {{ModId}}_GH1" } } }, { "Action": "EditMap", "Target": "Maps/Greenhouse", "FromFile": "assets/EG_Greenhouse1.tmx", "FromArea": { "X": 0, "Y": 0, "Width": 39, "Height": 40}, "ToArea": { "X": 0, "Y": 0, "Width": 39, "Height": 40}, "EditMapMode": "Replace", "Update": "OnDayStart", "When": {"HasFlag: CurrentPlayer": "{{ModId}}_GH1"} },

hard fern
weary pivot
#

Also an example of what worked and what didn't if that helps:

 {
        "LogName": "GenericModConfigMenu - Keybinds Button Swap",
        "Action": "EditImage",
        "Target": "Mods/GenericModConfigMenu/KeyboardButton",
        "FromFile": "Assets/GenericModConfigMenu/keybinds-button.png",
        "When": {
            "HasMod |contains = spacechase0.GenericModConfigMenu": true
        }
},

{
        "LogName": "DeluxeJournal - Building Icons Swap",
        "Action": "EditImage",
        "Target": "Mods/DeluxeJournal/BuildingIconsTexture",
        "FromFile": "Assets/DeluxeJournal/building-icons.png",
        "When": {
            "HasMod |contains = MolsonCAD.DeluxeJournal": true
        }
    }
lucid iron
#

This means you will have to separately pack replacer pngs unless the author of deluxe journal do something about it

weary pivot
#

I see! Thanks for explaining that.

winged charm
#

I managed to get my NPC to load last night, but now SMAPI tells me "[game] Removed broken NPC 'Aiden' in BusStop: villager with no data or sprites." and that it can't load my potraits so it just removes any function from the npc

brittle pasture
#

!json

ocean sailBOT
#

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

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

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

winged charm
brittle pasture
#

I guess you renamed your NPC from Aiden to {{ModId}}_NPCAiden and then loaded a previous save, in which case it's just the game notifying you that it sent the old Aiden to the shadow realm

#

your NPC data otherwise looks fine, go to sleep and they should show up

#

(I noticed you're loading a file named dispos.json and also specifying their Data/Characters entry below, is that intended)

winged charm
#

I don't know if i supposed to. I've only been told to really follow the guides and thats what they state. Yet I don't really know the purpose of it, but heres what i have in my dispo.json

  "Changes": [
    {
      "Action": "EditData",
      "Target": "data/NPCDispositions",
      "Entries": {
        "Aiden": "adult/polite/neutral/positive/male/datable/null/Town/spring 13//BusStop 15 22/Aiden"
      }
    }
  ]
}```
lucid iron
#

ah this is the old way

#

you can remove it now SDVpufferthumbsup

winged charm
uncut viper
#

Miss Coriel's creator isnt updated for 1.6, its CP that converts it for you

brittle pasture
#

the conversion is turning it into a Data/Characters (and stuff) entry, which you're doing below

#

just yeet it yes

uncut viper
#

Content Patcher has migrators that will handle things from older versions as long as the "Format" is old enough, but it doesnt give you access to all the new features

lucid iron
#

yea you already did the new way good job AquaThumbsup

uncut viper
#

it just ensures bare minimum functionality

winged charm
uncut viper
#

to me that sounds like it was anti-helpful SDVpuffersquee

winged charm
#

It atleast gave me the motivation to push forward SDVpuffermoustache

uncut viper
#

i will not deny it that in this instance, then

lucid iron
#

well im just speaking of what you showed us here

#

which is you did the Data/Characters good job, and thus don't need the data/NPCDispositions

golden basin
#

holy shit

#

that was so fast

winged charm
#

That was fast lool

golden basin
#

it was like BAM SPAM

winged charm
#

Freaking love AI Mr. Beast

iron ridge
#

oh they have evolved their images

golden basin
#

is there a mod that adds custom event commands

#

i have event command suggestions

gentle rose
#

there are a few, I think?

golden basin
#

i know spacecore does but casey is gone right now i think

iron ridge
#

casey's active enough

gentle rose
#

spacecore is still around though, so if it already does what you want it to do you may as well use it

golden basin
#

it doesnt do what i want no

#

but i does have event commands

lucid iron
#

i dont think there's anything that makes it rain in an event

golden basin
#

it*

uncut viper
#

casey is on modding hiatus

gentle rose
lucid iron
#

or even makes it rain in middle of day in general

golden basin
#

spacecore makes it rain but it keeps raining

lucid iron
#

ah you cannot unrain?

golden basin
#

nah you cant unrain

lucid iron
#

setRaining locationContext true/false

#

weird it looks like it's meant to take a bool

golden basin
#

youc an unrain?

winged charm
#

When working with the schedule since that's the newest error from SMAPI what does the last number mean in the string from the wiki?
"Wed": "1000 BusStop 24 23 3/1800 Town 47 87 0/"

golden basin
#

well wait i didnt want rain though

#

i wanted snow?

lucid iron
#

i have no idea then blobcatgooglyblep

golden basin
#

does spacecore do snow

#

so much info my brain is melty

lucid iron
#

besides actual weather effect

#

i suppose you can just make a big temp anim sprite that looks like snow?

golden basin
#

lag though

lucid iron
#

this is the second time i have heard about temporary animated sprite being laggy but i dont do events so i got no idea what is real kyuuchan_run

golden basin
#

it can be if its super big and has lots of animated parts

lucid iron
#

oh i was thinking only 2 sprites (but yes big)

#

hmmm

golden basin
#

i could make a location that is always snowing that you cant get to

#

thats just for some events

#

XD

lucid iron
#

yea that was my thought Dokkan

golden basin
#

ayyy we sharing a brain cell today

lucid iron
#

tho i was thinking temp map + the mmap steam thing, but again with a snowy looking texture

#

there's nothing to turn it on/off rn tho it is only map entry/exit

#

yea i dunno blobcatgooglyblep

lucid iron
golden basin
#

itd be easier to make a location that just is labeled as not always active

lucid iron
#

yea

uncut viper
#

(most locations should be not always active unless they really need to be, ftr)

obtuse wigeon
winged charm
#

!npc

ocean sailBOT
#
Creating a Custom NPC

Keep in mind that making NPCs is a complex process that requires learning many different aspects of Stardew modding.
Here are a few links that can help get you started on all that you need to know:

uncut viper
#

that is the list

obtuse wigeon
#

Ahh okay gotcha, I shall have to go through them all then

uncut viper
#

the "is CP extension" field differentiates them

calm nebula
#

Atlas, what is your end goal

uncut viper
#

learning by seeing what others have done, as i understand it

#

though it may be a good time to warn that you shouldnt really make a framework that isnt a CP extension nowadays

#

like, you can, but people are going to wonder why, and theyll be valid to do so

obtuse wigeon
lucid iron
#

you can make content pack for if you enjoy not having easy to content patcher tokens and conditions, and having to manage all assets by yourself

obtuse wigeon
#

Oh this is a seperate goal, this is an automation for making content packs for various/multiple frameworks and a converter for converting them between different frameworks, making a custom framework is a seperate project that's on a very slow timeline

brittle pasture
#

what would that do that the existing converters in !converters aren't doing

uncut viper
#

im not sure if i misunderstand but "convert between different frameworks" sounds like trying to convert an apple to an orange to me

#

or an apple to an automobile depending on the frameworks

obtuse wigeon
lucid iron
#

i mean you could make stuff like AT to CP or CP to AT, but yea have you looked at !converters

hard fern
#

Apple into an aeroplane

obtuse wigeon
lucid iron
#

well have fun i suppose Dokkan

uncut viper
#

why do you need to know which are CP extensions then and which arent?
(this isnt me trying to dissuade you or anything, im just genuinely curious why you'd need this if you need to look at them all anyway)

lucid iron
#

i did think there should be a AT to CP skins converter for buildings and farm animals

#

but the output is just json so

#

all the same in the end

obtuse wigeon
uncut viper
#

right but what does it matter when making a converter if a mod needs its own content pack format or not

#

you need to read both their docs anyway

#

and like chu said its all json so the process isnt really different when it comes to actually converting

obtuse wigeon
#

I'm working on the first module, which is making basic templates for multi-framework mods without a lot of rewriting and without inputting a lot of indentical information, so finding a list of frameworks that don't only add tokens was the goal, I'm quite tired so that explanation is probably no where near comprehensible, but I can't think of a better way to word it

lucid iron
#

im confused by your definition of multi framwork mod

#

the trend is moving towards CP does data stuff for everyone, so there's 1 unified json format

uncut viper
#

i think i only partially understand but i dont wanna make you keep explaining if you're tired and also would just rather work on it, so i will just trust that you have your reasons SDVpuffersquee

obtuse wigeon
# lucid iron im confused by your definition of multi framwork mod

Like mods that require different content packs in a single parent folder, Using SVE as an example, it has a CP content pack, FTM content pack, and a SMAPI folder, they all require seperate Manifest files, but I want to add support for a variety of different frameworks so that if I make a mod that needs CP and AT, then it can generate those repetitive files, or if one uses FTM, CP, and SF it can make them too

lucid iron
#

well hm for C# mods there's already a ModBuildConfig thing that lets them pack in a content pack with the C# Bolb

obtuse wigeon
#

there is, but this still helps me develop my skills which really is the intension of this "excercise"

lucid iron
#

maybe you could make it a nuget thing too Dokkan

#

ig im perhaps conflating "thing for personal use" for "actual tool to be published in hopes of being useful to many"

#

i have a quite a lot of little personal use things just like this kyuuchan_run

obtuse wigeon
#

oh ye this is entirely just a personal thing, there are other programs, scripts, tools, that can do what this does but better in ways I wouldn't think of, it's quite fun making small personal use cases like this

primal spruce
#

Can I make a custom wedding ceremony only using CP?

primal spruce
#

thanks!

worn oar
#

is there a guide to what goes on which layer for farm maps? the higher ones with the details around the edges confuse me

torpid sparrow
#

[[Maps]]

#

i do not know the commands

#

one sec

calm nebula
#

[[Modding:Maps]]

calm nebula
worn oar
torpid sparrow
#

If there are multiple than the highest one will show first

#

But they still fundamentally do the same thing

#

Relative to the player

obtuse wigeon
#

A layer suffixed by a number is entirely visual, it doesn't carry the properties of the layer without the suffix, the highest suffix is displayed on top

calm nebula
worn oar
#

ok ty

dusky sail
#

i think i've confused myself. do i add new digspot artifacts through data/objects, data/locations, or both?

calm nebula
#

Either iirc

dusky sail
#

ok cool ty

upper forum
#

thank you so much lmao

humble timber
#

lmao rip

oak umbra
#

For content pack mods is it possible to have multiple types of mods in a single pack? E.g a new map with new cloths, food etc?

devout otter
lucid iron
#

sure, if they are done via content patcher

lucid mulch
humble timber
#

you'll probably want to use includes for organization sake

#

but yeah very doable to do multiple things in one

winged charm
#

I just keep running into new errors. Am I supposed to have more to my schedule even when I'm just trying to get my NPC to load?

    "Changes": [
        {
            "LogName": "Aiden Schedule",
            "Action": "EditData",
            "Target": "Characters/schedules/{{ModId}}_NPCAiden",
            "Entries": {
                "spring": "610 Town 15 23 3"
             "Wed": "1000 BusStop 24 23 3",
            }
        }
     ]
}```
lucid mulch
#

missing comma at the end of the spring line

winged charm
thin fern
#

any idea why my custom npc might not be moving and unable to speak to ? i have all the basic stuff just to test the bot out rn but theres no error that shows on smapi

winged charm
winged charm
thin fern
#

well at least im not in this alone 😭

tired matrix
winged charm
oak umbra
#

Anyone know what the texture dimensions, size etc for making a new building is?

#

Need to design a new building but not sure how big to make the texture file for it.

dusky sail
#

They can be any sizd i think

humble timber
#

depends on how many tiles wide/tall u want it to be

dusky sail
#

If youre looking for a starting point id say just grab a vanilla building that you like the size of and base it on that

oak umbra
#

Thanks you two

#

So the only limit that really exist is the size of the map it's going on?

humble timber
#

uuh kind of?

dusky sail
#

Technically there's an upper limit of 4096x4096 pixels iirc but i doubt youd be going that high anyways

#

Tbh it's "make it any size you want" but if you make it unreasonably big you might get complaints from mod users. And the threshhold for unreasonable is really dependant on what youre making

#

Also are we talking farm buildings or npc houses

latent mauve
#

^ to shy also

#

(I did this earlier, made an EditData action for both of those and forgot to load the blank JSON to create the file I was using as the target first)

naive wyvern
#

hello, need a bit of Tiled help
So i usually make my tilesets with a lot of allowance, and im sure now that this is final

on Tiled there's these white boxes and i dont want them there its kinda ugly uisgiugs how do i clean my file q.q

latent mauve
#

Just resizing the PNG that Tiled is referencing didn't remove the white space?

naive wyvern
#

nope 😔

latent mauve
#

wow, rude, Tiled xD

naive wyvern
#

and when I tried re-adding the tilesheet as a new tileset, it treated it like a separate thing

#

so when I deleted the first iteration, my entire map is gone

lucid iron
#

What does your actual png look like

naive wyvern
#

like this now

It was previously super long