#making-mods-general

1 messages · Page 123 of 1

rigid musk
#

It was the period... I am

#

Beyond words

hallow prism
#

it happens, and you did the right thing asking here because sometimes you just need the fresh pair of eyes

#

(to be fair, the fresh pair of eyes wasn't that fresh and went "hmm, i don't see anything wrong" at first, then "how do i18n tokens work already???" at second)

#

(but it worked in the end, and the mention that other stuff was fine was very helpful to have)

rigid musk
#

So... am I not allowed to name the layers like this? (i did try to rename them and everything like "Buildings,.. Buildings1,.. Buildings2" / "Buildings,.. Buildings2,... Buildings3" But neither worked)

devout otter
#

You should be allowed.

#

(Though your "Builidings2" is mispelled.)

rigid musk
#

Well...

#

That would explain why some things aren't showing up but it doesn't explain why I can walk on the tables

#

maybe itll help though

#

well, better but I can still walk on stuff

devout otter
#

What layer are the tables on?

#

AFAIK only Buildings layer with no number would be impassable.

rancid temple
#

Only the base layers get the collisions

rigid musk
#

Well that's .. unfortunate

devout otter
#

Can't you just put the table on the base Buildings layer?

rancid temple
#

If you would have something on Buildings2 you could just have it on Buildings though

#

The only reason to have further numbers is to create layering effects

rigid musk
#

its mostly because I want stuff against the wall but if I put it against the wall it's going to remove said wall (since the wall is on the building layer)

rancid temple
#

Then the overlapping tile would just go on Buildings2

#

The rest of the table would be on Buildings

devout otter
#

You can put the base of the table on Buildings and the part that overlaps with the wall on Buildings2.

rigid musk
#

I shall try that :]

Also is there a reason why my Tile Data isn't being read/allowing me to interact with anything? As far as I can tell this is what the Wiki would want for using strings + translation data and such

#

ah wait i might have it on the wrong layer maybe

devout otter
#

Also make sure to put QiRoomStardropDesc in quotes.

rigid musk
#

Oh!

#

Thank you :]

tardy adder
#

The FTM is optional so that's alright... Unless I screwed up the manifest in main o-o

#

It only says it in comments but I'll add it to description sankiu, am working on the spawns 👀

#

Anyhow me will check when I get home. Thanky blueberry 🫐

rigid musk
#

I'm back... again

Can you add NPC warps via content patcher or do you have to directly edit the tilesheets themselves? if you can do it with CP - would it be using 'AddWarps'

hard fern
#

you caaan

#
         "Action": "EditMap",
         "Target":"Maps/BusStop",
         "MapTiles": [
                {
                    "Position": { "X": 18, "Y": 14 },
                    "Layer": "Back",
                    "SetProperties": {
                        "NPCWarp": "{{ModId}}_WaitingRoom 4 5"
                    }
                }
            ]
         
     },```
#

here's an example i used

rigid musk
#

:D thank you!

tardy adder
patent lanceBOT
#

Roger that, 13midnight (#6389446) (30m | <t:1732883978>)

coarse pasture
#

Hi again!
For making an item available through Geodes, I need to edit the Geode itself or I need to include a specific key on the item declaration? I couldn't understand well the documentation https://stardewvalleywiki.com/Modding:Items#Geodes_.26_artifact_spots

This is my item
{ "Changes": [ { "Action": "EditData", "Target": "Data/Objects", "Entries": { "{{ModId}}_IfritEssence": { "Name": "{{ModId}}_IfritEssence", "Category": 0, "Type": "Basic", "Price": "0", "SpriteIndex": 65, "DisplayName": "{{i18n: essence.ifrit.name}}", "Description": "{{i18n: essence.ifrit.description}}", "Texture": "Maps/springobjects", "Edibility": -300, "CanBeGivenAsGift": false, "CanBeTrashed": false, "ExcludeFromShippingCollection": true, "ContextTags": [ "color_red", "not_museum_donatable", "prevent_loss_on_death", "not_placeable" ] } ...

Stardew Valley Wiki

← Index

patent lanceBOT
tardy adder
#

Ah yes. The mod fixings. The fixing of the mods. The fixing specially for the mods.
The mods' fixes.

rigid musk
#

How do you get npcs to sit on things - like penny does? I know you have to make the sprites for it but how do you get them to actually stay in that position since it's not usually accessible

tame anchor
#

Sorry to bother, I want to replace my custom NPC portrait after the event (my portrait is HD), is there any way to do it?

rigid musk
tame anchor
#

My portrait relies on the "Portraiture" front load

rigid musk
#

In that case I don't believe you can - If I recall correctly portraiture relies on you manually changing them yourself. You could have the two folders - one named "Before" and then "After" and then use whatever key bind you have set for portraiture to toggle between them but I think that's about it

#

I could be horrifically wrong but If I recall me using that mod with HD portraits i am not

#

but i could be

devout otter
#

There's two methods I can think of.

rigid musk
#

If they weren't HD portraits it would be relatively easy to do with Content Patcher

devout otter
#

If you want to still use Portraiture, you'd need to load the "After" portraits as different Portrait asset, and use that asset in the appearance field with HAS_SEEN_EVENT condition.

rigid musk
#

Does Portraiture allow for you to do stuff like that? (Or did CP make it so that you can use HD pictures)

devout otter
#

But a simpler way is to just use SpaceCore for your HD Portraits instead of Portraiture.

tame anchor
#

SpaceCore?I'll look into it! Thank you!

#

🥰

rigid musk
#

I forgot that existed for a moment there

devout otter
tame anchor
#

That helps me a lot, thank you!

pliant birch
#

Hello, is anybody here who can make a simple small crop mod for or with me? I'm not into modding or coding. I just do changes in existing mods sometimes. So, I'm not completly stupid with this. But I'm definetly not able to make pixel arts for crop. And I really want to have a Jalapeño Crop in Game. Don't know if there is already one existing out there.

pliant birch
# rigid musk I can help :]

Sounds good. Would be nice it would work like the normal hot peppers. just green, and smaller but thicker. But I don't know anything and how I should start to do that

drowsy pewter
#

Cornucopia has one, if that's important to you

rigid musk
#

That's true it does

rigid musk
pliant birch
#

I don't know that... I will have a look at it

#

Booom 😄 How could I missed that?! Every day I'm looking for mods.. playing now with over 80. But I never saw that thing.. Thank you both. I think that's enough

rigid musk
# pliant birch I don't know that... I will have a look at it

I do have the general code for a Jalapeno done I just don't have any sprites done as that would take longer + I'm focused on doing something else atm (you could always go and recolor the crop, item, and seeds for the red pepper if you wanted to)

:] there are plenty of mods out there for things - if you're ever looking for something you could ask in #modded-stardew - many people know about some cool things

#

I also have a spreadsheet - it's not fully done/organized yet but you could scroll though that if you wanted

pliant birch
#

That is crazy what you all do here... awesome

pliant birch
tardy adder
#

How does one despawn the monsters spawned using spacecore?

#

I am not sure how after looking through resource and I accidentally made bat hell

#

This is golden tho

calm nebula
#

Perfect, 10/10, no notes

#

Tbh I accidentally said that to a gen X coworker the other day

#

So

#

Where does that come from

lucid iron
#

Do they come back if u kill them

tardy adder
#

No, but I want to despawn them so they don't persist... much

#

Bat hell the new pdw feature

rigid musk
#

are there any documentation/guides on how sprite animation works

lucid iron
#

There's no uniform way to animate things in vanilla

rigid musk
blissful saddle
lucid iron
#

But what are you trying to animate?

rigid musk
calm nebula
#

Yes. Podunk fixed that early in 1.6 alpha

rigid musk
#

or like how Demetrius stands at the lake and writes

calm nebula
#

Morning, esca!

#

#

Y'all off today?

royal stump
#

SDVpufferchickmorning got some stuff to do tonight & my sleep schedule is broken again, so uh, basically night for me atm

tardy adder
#

blobstare ok after commiting bat murder I am back to seeing how I can despawn them so that the way of getting rid of them is not only through combat but also condition 9-9

royal stump
#

I glanced around at spacecore's spawnable definitions and didn't see anything about removal, though casey'd know better than me (and probably add that eventually if asked)

tardy adder
#

SDVpufferthinkblob ah I see, yeah I only saw about the set piece clear hmm I'll bother casey if they pop up in here

royal stump
#

SDVpufferheart no worries, it's pretty typical for me
also hope you're doing well

calm nebula
#

Between yesterday and today I got 16 hrs of sleep so I'm no longer running a fever :pufferparty:

royal stump
blissful saddle
royal stump
#

though I'll feel guilty adding removal triggers before getting around to spawn triggers

blissful saddle
blissful saddle
royal stump
#

removing base game stuff & stuff spawned by FTM's normal mechanisms, etc SDVkrobusgiggle
like just a trigger action for "remove all monsters of X type", "remove whatever's on this tile", etc

#

but FTM doesn't even do trigger actions for spawns yet & the formatting would be similar, so it'll probably wait a while

blissful saddle
#

ok, now I got what you meant by 'trigger'

#

I am on meds, I am slow and hungry

latent mauve
#

My update to the Satoru Gojo NPC defines both his training and sleep animations and they work just fine.

tardy adder
#

I was using FTM but I wanted to do a trigger action thing so I was trying spacecore for the monster spawn

#

But it don't remove spawn like FTM ><

tardy adder
rigid musk
#

I was just confused because it just looked like numbers with no rhyme or reason but i found the section on the wiki to help me after some squinting and scrolling lol

solar sierra
#

Hello there ! I'm new to modding Stardwey (and Stardew in general) but I'm a bit lost and have a few questions. Is it okay to ask here ?

latent mauve
brittle pasture
rigid musk
royal stump
solar sierra
calm nebula
#

Why does Pelicuan Yown have a great library anyways

brittle pasture
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.

rigid musk
#

Unpacked game files my beloved...

blissful saddle
#

to make sense of animations I mean

rigid musk
#

It was just the Animation section of this

calm nebula
#

It's exactly how animations work anywhere in game tbh

rigid musk
#

I had to re-read it like six times to understand what I was doing but I got there... I think

blissful saddle
rigid musk
#

I've been doing stuff for over 12 hours though so I think I should take a break, and by a break I mean pass out in my bed

blissful saddle
rigid musk
#

Honestly schedules are kinda easy

#

At least they feel like it

#

I like them they're fun, i get to make the silly npc move around :)

blissful saddle
rigid musk
#

I should have done it several hours ago but I just kept finding new things that 'if I just finish this one thing ill go to bed and itll be done'

latent mauve
#

Maximillian, my NPC Builder has a schedule tab that should simplify schedule points for you (if that helps lessen the dread of schedules)

calm nebula
solar sierra
# brittle pasture !startmodding follow the Content Patcher guide and also make sure to unpack the ...

Ah actually ! I've already read the docs for the content patcher, but there is a thing that I wasn't able to find; it's the grid that you need to "visualize" how to place your furniture correctly on the .png
I saw other mods using [CP] are making a big .png and they are adding number in the .json file but I have no clue how exactly they do know which number to use exactly. Am I missing something by any chance ?

calm nebula
blissful saddle
#

I would like to make some new animation triggers, just like using tools or something

rigid musk
blissful saddle
#

not now, and not solid enough to make me download custom tools source mods to see how they handle it

rigid musk
#

its like a x.y grid but only one coordinate plane

rigid musk
#

I have to eat first but I will be resting... and I will not work on more things while eating

latent mauve
blissful saddle
latent mauve
#

Where's my recent Google sheets insanity screenshot, it's in here somewhere

tardy adder
#

I'll make ze spacecore spawns and keep FTM for now SDVpufferthinkblob I am naming them stragglers

latent mauve
#

There, that's a brief look at the default Furnitures tilesheet and index

#

Helpful if you need a visual of how it works

solar sierra
rigid musk
#

oh wow that sheet is amazing

#

I usually make my furniture /general items that need tilesheets on individual pictures to combat having to know the index number but that... that's beautiful

latent mauve
#

Conveniently, making that sheet also gave me a parsed list of all the default furniture entries in the game (and a way to add new ones to the bottom of the list to check that I formatted them right)

#

I'm lazy so it's only furniture unpacked from 1.6.8 though

#

Haven't gotten around to getting a new unpack yet

solar sierra
#

"Only" 😂
You're doing a great job there, not "only" x)
Mh...so if I understand well, for example for the very first chair on your grid, it should be written like that : 0/0 1/0 2 ?

blissful saddle
#

you will understand soon that being humble about our work is kinda part of being a modder

quick frost
#

Hewwo Stardew modding friends, I have returned from the dead temporarily to ask if there is a new way to replace music in the game besides Custom Music yet

rigid musk
#

there is no other way to make mods other than to be humble

#

that is all

#

also you can change the music on maps with content patcher iirc

latent mauve
#

Let me get to a computer and I can share the sheet link, that will be the easiest way to clear it up I think

rigid musk
#

you dont need custom music i know that for sure, no (modern) mods use it as far as i know

rigid musk
royal stump
#

and music selection is controlled by Data/Locations and Data/LocationContexts, I think?

latent mauve
#

Yep

uncut viper
#

you can still use the map property too if you really need to, but its deprecated and only useful in niche situations

quick frost
#

Hopefully this works better and uses less RAM lol

#

I want to update Piano Valley sometime soon

solar sierra
#

Oh I have another question ! If want something else than a chair on the grid starting to 0, is it possible to replace it and doubling its size ? For example a big bookshelves ? Or is it mandatory to have a chair and the same size as the original one ?

calm nebula
#

(Using .ogg streaming should use less RAM!)

quick frost
#

lol I’ve swapped .ogg and .wav so many times bc people tell me to use each for different reasons

calm nebula
#

Well. Saat never had proper ogg support

#

Currently, the game should support ogg fine

quick frost
#

I never used SAAT, unless that’s also Custom Music. At one point I had the option to have both but it was really time consuming to try and maintain both of them

#

Idk which one it’s on rn I haven’t updated it in forever lol

calm nebula
#

The current recommendation is to use .ogg (and streaming) for music

#

And .wav (without streaming) for short sound effects

latent mauve
#

Take a look at the entries on the bottom of Data/Furniture tab to see how custom items are handled to define the sprite sizes

solar sierra
#

💖

#

That's even better ! So useful, thank you for the help !

latent mauve
#

just cleaning up my examples 😉

#

alright, all cleaned up now

#

So the spriteindexes should be accurate for my examples

latent mauve
#

Worth it to have a visual now for furniture sprite indexes, though

solar sierra
#

Your effort WAS really worth it, great job 🌸
And now thanks to you I'm really looking forward to make my first piece of furniture, you're making someone happy here ~

tender bloom
#

There’s a few example pictures in my furniture tutorial as well, but the sprite indices are definitely the trickiest part

latent mauve
#

yeah, the formulas are still being a butt with me trying to exclude the quotes and commas from the parse, so the actual data table isn't perfect for the first and last columns, but the visual works fine

calm nebula
#

What was thus??

solar sierra
latent mauve
#

If you are using the same rotation number, chairs use -1 by default to determine the size and bounding box, as there is a hardcoded default value

#

But your tilesheet size would never have a 0 in it

tropic lichen
latent mauve
#

haha, no problem

#

So if you look at the Data/Furniture tab, it breaks down what goes in each section of / arguments

solar sierra
#

Mh...I see🤔

#

Is there the code for the original furniture sheet somewhere, by any chance ?

latent mauve
#

Raw Furniture Data shows the original code for each item

#

so for the first chair: 0: "Oak Chair/chair/-1/-1/4/350/-1/[LocalizedText Strings\\Furniture:OakChair]",

uncut viper
#

(do you have your files unpacked, Dreamies?)

latent mauve
#

If you want everything you'll need to unpack files.

solar sierra
#

Ah, thank you (again) !

solar sierra
royal stump
latent mauve
#

(please use the string if you're making custom furniture, it makes life so much easier)

calm nebula
teal bridge
#

AFAIR it was just structs with interfaces, it didn't actually involve Harmony directly.

royal stump
#

I've never looked at internals for either, so SDVpufferlurk

teal bridge
#

Presumably the incident itself involved those things - maybe the struct and/or interface was from Harmony.

vestal solar
#

. Hey, Guys! Sorry to trouble you all (and sorry if this is the wrong place), but I am making my first mod and I've hit a small snag. It's just map replacer for a vanilla farm map (Farm_Foraging) with a couple edits using Tiled and Content Patcher (and no other mods are enabled).
So I removed the fencing and shrubs behind the house and it created a small area that--despite having no objects or buildings in it--is unpathable, unbuildable, and disallowing of furniture. I was able to fix the first two with an object to make it passable and buildable, but how do I make it allow furniture? I tried a back layer with "NoFurniture" - f but it didn't work. What is a property that can specifically allow furniture? Alternatively, what's causing this, and can I just fix that?
Thanks guys! Sorry again to bother you.

latent mauve
#

Screenshot your Tiled object properties for that TileData object just in case?

vestal solar
#

Those are the two existing objects in this area

#

They normally overlap in the top section

#

(Also some layers are hidden to help see the area)

#

Oh, and it isn't the spouse area

latent mauve
#

Is there a reason why Passable is required to work? (Invisible tiles on Building layer, another conflicting TileData object that says it's not passable etc.)

#

Invisible tiles get me all the time

rancid temple
#

NoFurniture is likely another property that doesn't care what it's value is

vestal solar
#

I quadruple checked

#

But it was, yeah

latent mauve
#

Honestly, NoFurniture SHOULDN'T be required if it's just gonna be False, but if something is not Passable without Passable T, then something else is usually up.

rancid temple
#

Apparently there is a value that NoFurniture checks for "total" but I have no idea why lol

patent lanceBOT
#

@calm nebula: do an error item check in events tester (5d ago)

latent mauve
#

Unless somebody with access to a decompile wants to save me the effort, I'm about to make a bunch of sample furniture items for everything with a -1 in the tilesheet size to figure out the exact numbers that the game is putting in.

rancid temple
#

I think I posted a screenshot of this before, not sure how far back though

latent mauve
#

were they all in there?

vestal solar
latent mauve
#

I found this one with the types, didn't see tilesheet size listed but I'll keep scrolling

rancid temple
#

Oh, guess I didn't share the types, one sec

#

sizes*

#
case 0:
    width = 1;
    height = 2;
    break;
case 1:
    width = 2;
    height = 2;
    break;
case 2:
    width = 3;
    height = 2;
    break;
case 3:
    width = 2;
    height = 2;
    break;
case 4:
    width = 2;
    height = 2;
    break;
case 5:
    width = 5;
    height = 3;
    break;
case 6:
    width = 2;
    height = 2;
    break;
case 17:
    width = 1;
    height = 2;
    break;
case 7:
    width = 1;
    height = 3;
    break;
case 8:
    width = 1;
    height = 2;
    break;
case 10:
    width = 2;
    height = 3;
    break;
case 11:
    width = 2;
    height = 3;
    break;
case 12:
    width = 3;
    height = 2;
    break;
case 13:
    width = 1;
    height = 2;
    break;
case 14:
    width = 2;
    height = 5;
    break;
case 16:
    width = 1;
    height = 2;
    break;
default:
    width = 1;
    height = 2;
#

Oof lmao

latent mauve
#

thanks roku, I can copy/paste that and format it from there xD

#

can you grab bounding box size too while you're there? >_>

rancid temple
#
case 0:
    width = 1;
    height = 1;
    break;
case 1:
    width = 2;
    height = 1;
    break;
case 2:
    width = 3;
    height = 1;
    break;
case 3:
    width = 2;
    height = 1;
    break;
case 4:
    width = 2;
    height = 1;
    break;
case 5:
    width = 5;
    height = 2;
    break;
case 6:
    width = 2;
    height = 2;
    break;
case 17:
    width = 1;
    height = 2;
    break;
case 7:
    width = 1;
    height = 1;
    break;
case 8:
    width = 1;
    height = 1;
    break;
case 10:
    width = 2;
    height = 1;
    break;
case 11:
    width = 2;
    height = 2;
    break;
case 12:
    width = 3;
    height = 2;
    break;
case 13:
    width = 1;
    height = 2;
    break;
case 14:
    width = 2;
    height = 1;
    break;
case 16:
    width = 1;
    height = 1;
    break;
default:
    width = 1;
    height = 1;```
rancid temple
#

I thought about posting this somewhere else but I'm too sick to deal with that lmao

latent mauve
#

beautiful, those are going in the google sheet

solar sierra
#

Just notice there is a Custom Furniture mod ?! I tried to install it though I can't find it within the in-game window cheat (to drop any object). I'm not sure to understand what i did wrong for it not to work ? it's actually cool that you apparently can add furniture instead of replacing it ;-;

latent mauve
#

I'll format it for easier reference so we never have to do that again.

#

CF is outdated, you can add NEW furniture in CP using the information from the sheet I gave you.

rancid temple
#

Also Furniture Framework

latent mauve
#

Also FF, yes, and the FF dev is super active in here lately. 😛

rancid temple
#

If I was adding furniture, I would use FF just because the base string asset sucks lol

uncut viper
#

also i dont think either of those frameworks do/add anything on their own anyway so there wouldnt be anything to spawn in

rancid temple
#

Yeah, they're just a means to add new stuff, don't actually have anything bundled I don't think

latent mauve
#

I just didn't want to use yet another dependency for what was gonna be a tiny mod to add child beds, so I went straight to the full-CP route

#

Wasn't that hard

rancid temple
#

Yeah, I just don't like everything being in one delimited string, get enough things in one spot and it becomes string salad

solar sierra
latent mauve
#

All the code's in there.

calm nebula
#

Lol, many ways to do things lol

rancid temple
#

@woeful lintel Does FF work in 1.6.9? I only ask because the page seems it indicate otherwise but you had a recent-ish reply to a comment that makes me think it should be working?

calm nebula
#

I just have a harmony patch in one of my mods that make children also use single beds

#

Iiiiii think it's cute for the kids to crawl into bed with the adults 🤷

solar sierra
latent mauve
#

Some of the double beds don't have single bed designs, so, it served a dual purpose when redoing the assets. 😛

#

I do not promise that my code is always the cleanest, but I don't have issues with people looking at my content files to see how things are coded with Content Patcher. It all follows the same basic format for any CP mod, honestly.

tender bloom
#

Fwiw this also has the bounding sizes, though I don't recall if I got everything

#

(And you can edit, since it's a wiki!)

latent mauve
#

Admittedly, I never think to search the moddingwiki

tardy adder
#

Ok I finally fixed the bill numbers some more >-> they were a bit too crazy

calm nebula
#

That the kids wouldn't use the new single beds

#

And the cat ignores the cat tree

tardy adder
#

HAHAHA when the bill goes way beyond your farm value

latent mauve
#

That moment when your farm's property value gets reappraised over night and the property tax is twice the value of your previous farm SDVkrobusgiggle

tardy adder
#

on another note I found this hilarious
Like Robin, Lewis, PLEASE I will die

solar sierra
#

@latent mauve would it be okay if I use your code (and replace your .png with mine) and credit you when I release my mods ?

tardy adder
#

I forgot the test file was at this point and I did another bat summon to see how ze spacecore spawn works

latent mauve
#

Mainly the Texture and the PNG should probably be renamed

#

As well as your furniture IDs

solar sierra
#

Got it, thank you so much !💖✨

latent mauve
#

I'm working on a code sample in the sheet on Sheet 5, once I get this reference table done, if that helps going forward

#

Not gonna go ALL the way to make it another builder like my NPC Builder sheet, but I can probably use a few of the same tricks from that one

velvet grove
#

I need some help brainstorming. I've got some asset replacement that I've got built out to utilize the generic config mod. When I change the drop down in the config menu, the asset changes exactly the way I want it to. What is the best way to program that change so it happens based on a game action like if a player is wearing a certain clothing item rather than having to manually change the value in the menu?

rancid temple
#

Is this a CP mod or C#?

lucid iron
#

What asset is it?

velvet grove
#

It's the player sprite. C# mod, but I guess I may be using CP to store the assets. I thought I'd be able to change the value in the config json while playing but it seems like the generic config mod doesn't read out to the config file while the game is running. Only on boot up.

rancid temple
#

That depends on you, GMCM is primarily for reading and writing to the config

#

You would handle reading your current config values and acting on them

#

Trying to remember if one of these frameworks has an OnEquip thing

#

Item Extensions

uncut viper
#

a dependency for a C# mod for that is probably overkill when you can just postfix onEquip

rancid temple
#

Yeah, I was gonna suggest seeing how IE does it lol

velvet grove
#

So I guess in that case, the piece I'm missing is how GMCM rerenders the sprites upon saving. If I'm just swapping out the player tile sheets when a specific item is equipped, are you saying there is an easier way to handle that than C#?

rancid temple
#

Unless you want to use IE as a dependency, you would need C# for that

uncut viper
#

GMCM doesnt do anything but read and write to a config.json

rancid temple
#

GMCM isn't doing anything to your sprites, it's just updating your config which is causing some other part you have dependent on that config to change

velvet grove
#

I'm blanking on what IE is at the moment, but if I'm understanding correctly, if I program an edit to my config, that should accomplish the same thing that GMCM is doing.

#

Then CP would handle the sprite swap

uncut viper
#

you don't want to bypass GMCM, you want to keep using that as users are going to want to be able to edit your config with it

#

GMCM handles making edits to your config

calm nebula
#

I'm incredibly confused tbh

uncut viper
#

what you want to do is ,wherever you need to check it, check like ModEntry.Config.ValueHere == true or whatever

latent mauve
uncut viper
#

where ValueHere is the name of your c onfig option, assuming its a bool config field

#

if you're making a C# mod then CP isnt involved at all

#

unless you also have a CP component alongside it

calm nebula
#

Gmcm does exactly what you tell it to. If you want it to do something different you need to tell it to

lucid iron
#

Oh I think you missed the whole asset pipeline invalidate stuff

rancid temple
#

As far as I can tell, they're using CP to handle the pipeline stuff and C# to handle config stuff

lucid iron
#

Content patcher gmcm integration has auto invalidation so that u see changes immediately

#

You need to do the same in your C# component

rancid temple
#

I don't think they're having any issues with the content updating in time

#

They're trying to determine what the best way to make changes when equipping something is

blissful saddle
uncut viper
#

it also sounds like they want the config option to be in sync with the item being equipped or not which is strange to me and not something i would recommend i think

rancid temple
#

I assumed that was for testing, but I dunno

calm nebula
#

I'm just very confused and thus am not going to even try to be helpful

uncut viper
#

like you could do it. but i think if a user sets a config they want it to be respected, not changed by the mod

calm nebula
lucid iron
#

Yeah i think we are probably hitting X/Y problem here

#

Imo if something can be changed by gameplay action (like put on a shirt), then it shouldn't be a config

blissful saddle
#

config is to give player options to change through your mod behaviours

rancid temple
#

I don't mind if it's a config that's like "ignore needing shirt"

blissful saddle
#

I can give instructions through content to a cp mod change what are the config items values through conditions?

uncut viper
#

you said you wanted to change the value in config.json through playing though. i would not want that

blissful saddle
#

like loading them, checking a condition, and changing them like a dynamic property?

uncut viper
#

(by you i mean davis ofc, im just clarifying what we mean here)

velvet grove
#

apologies that this is all a bit over my head, but I do appreciate everyone's help. No, I wasn't looking specifically to have GMCM to sync up and reflect the values, it was just the best way I knew how to swap out the view of the assests to make sure things looked right. So the idea is that there would be something like an animal ring that would make the player an animal which would need a whole new set of character animations. So if I make a custom ring item, how would I go about having the correct tile sheet be used when it's equipped and go back the the normal sheet when not.

blissful saddle
#

I think what you mean by tilesheet in your example is a spritesheet in reality

uncut viper
#

you would need to invalidate the assets that the farmer renderer uses so that they can be edited again in your AssetRequested event, but that said i wouldnt expect it to be that easy given that its, the Farmer

velvet grove
#

yes, sprite sheet.

tardy adder
#

@-@ ok I think I dealt with the reports... time to go back to making trees and spawning monsters

blissful saddle
#

I was able to do it through crimes in my c# mod. but it was based on an Aviroen mod

#

through crimes and gmcm solely

lucid iron
#

Did u put ftm back into the main file

blissful saddle
#

sorry, it was ichor

latent mauve
#

I foresee some issues with multiplayer for this if the solution involves replacing Characters/farmer_base by anything other than a very specific method that only changes it for the equipping user, so that would almost certainly need C# or a dependency C# mod that does something similar already, I think?

uncut viper
#

they are already using C#

#

i dont know how to help further though as i dont know how to mess with the farmer sprites

latent mauve
#

okay good, I was thinking back to the earlier comment about "is there an easier way to handle that than C#"

lucid iron
#

What if you draw the animal form over the player

#

In one of the smapi render events

#

Farmer renderer scary SDVpufferfush

uncut viper
#

i was thinking that too but that might be annoying to get the sprite frames to sync up maybe, and i wonder if there'd be any layering issues thatd also be annoying to fix

#

like your tools would appear under your hands wouldnt they

lucid iron
#

Yeah but maybe it's like skyrim werewolf logic can't use tools as an animal

#

If u just want to become furry then I'd go for fashion sense pack

uncut viper
#

they want to transform with a ring though

blissful saddle
#

if ring equipped, substitute items equipped apearance for fashion sense furry appearance

velvet grove
#

That's the thing, it works great currently just as a config option. I've got the farmer sheet and another sheet and I just change between the two. So it feel so close to working

uncut viper
#

fashion sense items arent 'items' though

calm nebula
#

Look at how the deer in...uh. was it sword and sorcery? Works

uncut viper
#

a fashion sense shirt sprite is not compatible with a vanilla shirt sprite

calm nebula
#

Tbh I think Casey just replaces all farmer draw code with her own

eternal mortar
#

why is smapi being reported as malware on my computer lol, has it always been? 😅

blissful saddle
#

(have no idea how fashion sense works. just wanted to add to the chaos)

eternal mortar
#

yeah

uncut viper
#

(i would not recommend suggesting a solution if you dont know how the solution works)

blissful saddle
# eternal mortar yeah

not the right channel for it, but try 4.1.8 or the 4.1.8-alpha, as the last was made to avoid that

latent mauve
lucid iron
#

I wonder the degree of Bad if u like

#

Swap the loaded farmer base with different asset

uncut viper
calm nebula
#

Probably could I think

calm nebula
#

I think Casey went her route bc the deer is 32x32

#

Like, you would have to prevent smapi from trying to put the other texture back in invalidating but

lucid iron
#

So then u just keep farmer_base_animal loaded all the time, no need to invalidate

#

Just conditionally change which texture u r draw from

calm nebula
#

Yeah

#

You can probably just assign ro the tex in farmerrendee

uncut viper
#

i just suggested the invalidation since if it works from the config with CP, then it seems like invalidating and replacing is good enough for them, so it might just be an easier place to start than conditionally changing what is drawn

lucid iron
#

Hopefully easier to do multiplayer compat like this, just need to signal to clients to also do this swap

uncut viper
#

emphasis on 'start'

proud wyvern
# calm nebula How was harmony involved here lol

having Harmony in the mix means MonoMod is involved in the JIT; Pintail was emitting invalid IL which normally would have caused a bad IL exception, i guess. with MonoMod in the mix, it was crashing the whole runtime instead

velvet grove
calm nebula
#

Tbh the runtime invalid il check is very incomplete

proud wyvern
#

i have to report that as a proper bug to MonoMod, i just didn't have the time to do so

calm nebula
#

I can imagine it handling bad value types badly on its own

#

Especially with box/ynbox

proud wyvern
#

or rather, i was told to report it

#

with a minimal example if possible

#

gotta figure out how to use MonoMod.Core on its own heh

#

and then it's just a case of emitting some bad IL, like Pintail did

heady sedge
#

hi! so I'm new to modding and I'm working on my first mod. I was wondering if anyone would help me figure out why my character won't appear in the game. there are no errors on smapi, he just doesn't show up. sorry if this is a dumb request and I know my mod is really scuffed but I'm new and I don't know how to fix it. okay thanks!

tender bloom
#

Please post a log to start with!

#

!log

ocean sailBOT
#

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

Please share your SMAPI log file. To do so:

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

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

uncut viper
#

!json a json too, probably. its likely you just dont have every piece of NPC exodia for him to appear

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.

uncut viper
#

(NPCs need a few things all in place at the same time to be minimally functional)

heady sedge
#

okay, thank you!

lucid iron
tardy adder
late pewter
#

Ok, so this may sound extra dumb, but I want to try and update someone else's mod for my own personal use.
This is the mod in question:
https://www.nexusmods.com/stardewvalley/mods/12469

SMAPI loads it fine, but produces this error when using the sell quality hotkey:

[Sell Quality] This mod failed in the Input.ButtonPressed event. Technical details:
NullReferenceException: Object reference not set to an instance of an object.
at SellQuality.ModEntry.OnButtonPressed(Object sender, ButtonPressedEventArgs e) in C:\Users\jason\source\repos\StardewTestMod\StardewTestMod\ModEntry.cs:line 35
at StardewModdingAPI.Framework.Events.ManagedEvent'1.Raise(TEventArgs args) in /home/pathoschild/git/SMAPI/src/SMAPI/Framework/Events/ManagedEvent.cs:line 101

Where do I start?

lucid iron
#

Is this mod open source

tender bloom
#

Definitely look for the source

#

Null Reference Exception means: something was null, when the computer didn't expect it

#

It's extremely hard to debug without the source handy

lucid iron
#

Hm

tender bloom
#

You can start taking guesses about what once you have the code

lucid iron
#

What if u just make ur own Bolb

#

It seems not that hard actually

calm nebula
#

Yeah

#

And it's closed source so

faint ingot
#

I'm really confused... my mod has two fences added to the game, and they were working last night, but this morning when I opened my game the previously placed fences just have red circle/cross icons, and when I place new ones they just the icon from the craftable instead of the correct fence segments. To my knowledge I didn't change anything that should have affected it. I also did a patch export of Data\Fences and Data\Objects and I think it looks normal?

#
    "Name": "LawAndOrderSV_VelvetRopeFence",
    "DisplayName": "Velvet Rope Fence",
    "Description": "A sturdy and stunning fence option.",
    "Type": "Crafting",
    "Category": -8,
    "Price": 40,
    "Texture": "Mods\\sdvhead.LawAndOrderSV\\lao_objects",
    "SpriteIndex": 22,
    "ColorOverlayFromNextIndex": false,
    "Edibility": -300,
    "IsDrink": false,
    "Buffs": null,
    "GeodeDropsDefaultItems": false,
    "GeodeDrops": null,
    "ArtifactSpotChances": null,
    "CanBeGivenAsGift": true,
    "CanBeTrashed": true,
    "ExcludeFromFishingCollection": false,
    "ExcludeFromShippingCollection": false,
    "ExcludeFromRandomSale": false,
    "ContextTags": null,
    "CustomFields": null
  },
  "LawAndOrderSV_SecurityFence": {
    "Name": "LawAndOrderSV_SecurityFence",
    "DisplayName": "Security Fence",
    "Description": "A fence that seems to say 'keep out'",
    "Type": "Crafting",
    "Category": -8,
    "Price": 40,
    "Texture": "Mods\\sdvhead.LawAndOrderSV\\lao_objects",
    "SpriteIndex": 23,
    "ColorOverlayFromNextIndex": false,
    "Edibility": -300,
    "IsDrink": false,
    "Buffs": null,
    "GeodeDropsDefaultItems": false,
    "GeodeDrops": null,
    "ArtifactSpotChances": null,
    "CanBeGivenAsGift": true,
    "CanBeTrashed": true,
    "ExcludeFromFishingCollection": false,
    "ExcludeFromShippingCollection": false,
    "ExcludeFromRandomSale": false,
    "ContextTags": null,
    "CustomFields": null
  },```
#

Sorry I should have linked to a paste of all that

velvet grove
obsidian ibex
#

hello (i'm brazilian, so, my english is a failure)
There is a mod called Archery that apparently was abandoned by the owner, i wanted to see if anyone would have enough knowledge to update it for SV 1.6.14, pls :( my mod need this mod to work
( https://www.curseforge.com/stardewvalley/mods/archery )

CurseForge

A framework which allows mod authors to create custom range weapons, ammo and related recipes.
4.0K Downloads | Mods

rare orbit
#

quick question? to make a mod based on deluxe journal is it possible to use content patcher as the framework?

brittle pasture
#

Does that mod expose a content patcher asset?

rare orbit
tender bloom
#

where's the documentation for deluxe journal?

#

basically, if it lets you use CP, then yes, otherwise no

#

the mod has to be speicifcally set up to use CP

rare orbit
#

oh...

#

i don't know if it has documentation ;-;

tender bloom
#

what do you mean by a mod based on deluxe journal, anyways?

rare orbit
#

dang.

tender bloom
#

it doesn't look like it takes in content packs, at a glance

rare orbit
#

like the layout and features mostly since deluxe journal is easier to use at least for me

#

plus many others, including myself, want this updated but unless i get the greenlight i can only try to make it myself

tender bloom
#

It sounds like you want to update Deluxe Journal? It's a C# mod that's open source but you certainly cannot make it in CP

#

However, it looks like it's actively being worked on

#

There was a commit from 33 minutes ago in the repo

rare orbit
#

oh cool! did not know that

tender bloom
#

It was last updated in July, which in Stardew time is not that long ago

rare orbit
#

oh ok! sorry i did not know

#

i was gonna try to help out ya know?

tender bloom
#

Yeah, i would guess, though I can't say for sure, that it should be updated reasonably soon

#

As someone who hasn't had a chance to get around to my own mod updates for 1.6.9...I relate lol

latent mauve
faint ingot
ocean sailBOT
#

Log Info: SMAPI 4.1.7 with SDV 1.6.14 build 24317 on Microsoft Windows 11 Home, with 8 C# mods and 5 content packs.
Suggested fixes: One or more mods are out of date, consider updating them

tender bloom
#

...oddly, until you do a patch export, your pack doens't seem to load?

#

look in trace

#

You can see it doesn't edit Data/Fences on behalf of your mod until you start messing with debug stuff

latent mauve
#

Can you do a patch summary asset "Data/Fences" ? I think that's the format.

tender bloom
#

Do you have a json link to your CP pack?

#

perhaps there's something odd about how you load it in

#

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

latent mauve
#

It doesn't look like it's applying in your overall summary either, so I want to see if something else is overtaking it

tender bloom
#

I would guess that perhaps it's conditionally added somehow?

#

But I'm not sure

latent mauve
#

It looks like SVE could potentially be overriding it later on, so you may also need to set a priority or change the load order

faint ingot
#
----------------------

   Local tokens:
      token name | value
      ---------- | -----
      ModId      | [X] sdvhead.LawAndOrderSV

   Patches:
      loaded  | conditions | applied | priority | name + details
      ------- | ---------- | ------- | -------- | --------------
      [X]     | [X]        | [ ]     | Default  | Fixup Condition Check > fixup.json > Custom Objects > assets/Data/objects.json > EditData Data/Fences

   No current changes.```
tender bloom
#

what is fixup.json doing?

latent mauve
#

Is that the full patch summary of the Data/Fences asset, or just your mod's section?

#

Because if it's just yours, that won't answer my question. 😉

faint ingot
#

that's just my mod's section i didn't want to spam/scroll the discord with the whole thing

tender bloom
latent mauve
#

^

#

Just upload the log again with that piece in it, or add it to the JSON parser

faint ingot
#

Actually I think I may have accidentally overwritten that file at some point although I'm not sure how, I will do some more testing on my own and if I still have issues I will look into the possible SVE override, thank you everyone

gaunt orbit
#

says there's a parsing error- try putting all of your jsons through the validator

faint ingot
gaunt orbit
#

oh wait you put your log in the parser, that's why

latent mauve
#

Yeah, ignore that

#

It's more likely something to do with the conditional patch or SVE. You could try setting SVE as a false dependency in your mod manifest to check real quick if that solves it

gaunt orbit
latent mauve
#

Just to check, your Data/Fences change is an EditData Action, yes?

#

Not a Load?

latent mauve
#

Would you mind putting fixup.json in the JSON parser, if you want us to look into it any further?

#

Otherwise, you can add this to your mod's manifest after the "UpdateKeys" line if you wanted to check if SVE is causing the issue by loading after you: "Dependencies": [ { "UniqueID":"FlashShifter.StardewValleyExpandedCP", "IsRequired":false } ],

#

(If your mod already has dependencies, you would just include the part in { } after your other dependencies)

faint ingot
#

I did try the SVE dependency and that didn't seem to fix it. I have a little troubleshooting to do on my own, if that fails I'll be back, thank you all again

latent mauve
#

ok then. I'd check it without the conditions as well, to rule that out. ❤️

faint ingot
#

It appears to be working now although I'm not 100% sure why SDVitemblobfish

#

I added the SVE optional dependency and moved where I apply the content pack so it's no longer dependent on having seen my NPC load-in event. (although I'm sure in my save I had seen that event)

#

however now I'm seeing this which is concerning?

latent mauve
#

Yep, you're loading the asset twice, which wasn't showing up as an issue previously because your second Load was conditional and failing

#

(you have to make both loads conditional to avoid angering that, or make the one that happens later an EditData instead of a Load)

#

Typically you load a texture only once ever in your mod, and then every time you have to change it after, you use EditData

faint ingot
#

I'm pretty sure I am only loading it once though, unless somehow it was using a cached version of my file where I removed it from

latent mauve
#

that error shows where both calls are

faint ingot
#

if I'm reading it correctly one of those calls is from fixup.json though, which is where I removed it

latent mauve
#

If it's completely gone in fixup.json and you haven't exited the game and reopened it, you may need to do a patch reload to register the changes to your files

faint ingot
#

I think I'm going to completely restart my computer because the last time I left the farmhouse it completely crashed smapi so yikes

latent mauve
#

Just exiting to title won't refresh your CP mod changes without a patch reload

#

Doubled up load errors on your farm can cause that crash

faint ingot
#

it may have something to do with SVE as well as it messes with fences apparently, will continue testing thank you

latent mauve
#

What does your folder structure look like where your fixup.json file is?

#

Because the error message is actually implying that you have a copy of your Custom Objects folder in there.

faint ingot
#

custom objects is in assets\Data\Objects.json

latent mauve
#

hm

#

please share your fixup.json in the json parser

#

Because it definitely doesn't think the load is gone.

#

Might need to share your objects.json too if it keeps complaining

faint ingot
#

anyway like I said I'm restarting my comp and then need to step away for a bit. I appreciate your help will check back.

latent mauve
#

Yep, let us know if it keeps acting up on a restart when you have the time

faint ingot
#

So, it's still crashing, I removed SVE just to be sure and that didn't change anything. It thinks I'm loading the securityfence texture twice but even after doing an in-file text search on my entire mod I can only find one place it loads, in objects.json

ocean sailBOT
#

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

faint ingot
gaunt orbit
# faint ingot

starting a new save might help so you don't have to deal with all those missing locations

#

aside from that, it looks like you have multiple Load patches for the same asset, which is a no-no

#

fixup and custom objects

faint ingot
#

I was just going to say I just started a new save and so far so good, but in that save it hasn't applied the fixup json yet

gaunt orbit
#

so from the sound of it, you're using fixup to try and override your default asset?

faint ingot
#

regarding multiple load patches, I don't think I actually am? It may be that my save became corrupted but I'm not loading objects.json from fixup

faint ingot
# gaunt orbit CP says you do

I understand, and I think that may be due to a corrupted save. I'm new at this so I'm not speaking with certainty, but I did upload my fixup file and it does not touch objects.

gaunt orbit
#

oh wait I see

latent mauve
#

They shared both JSONs and it's no longer in the fixedup json

#

I have verified

#

So seems like it's baked into the save somehow

faint ingot
#

so far my new save file is working I will run the fixup event and see what happens after that

gaunt orbit
#

can you post fixup.json?

latent mauve
#

This may be a case of "throw away the old error objects, their data is wrong" and spawn in new ones

#

For the old save

gaunt orbit
#

did you reload your patch after making edits?

#

and is the uploaded json the most recent version?

#

the log is referencing a patch that does not exist in the json you linked

#

according to the log, fixup is including an already-included file, which is causing the patches in it to duplicate and create load errors

faint ingot
#

I completely restarted my computer after making edits, and the uploaded json is the most recent. So far the new save is behaving as expected

gaunt orbit
#

hmm

uneven hinge
#

helloo!! ❤️ does anybody have a link to making AT mods, specifically for walls and floors?

faint ingot
#

looks like everything is working in the new save file so it looks like the issue happened during my change of where I was loading the texture from, and my old save file got corrupted.

#

anyway thanks @latent mauve and everyone else for your patience

midnight skiff
#

Hello, I'm trying to just poke my nose in something and I'm stuck. Now that everything is Content Patcher centric, I can't seem to find a way to open old mods.
For example, I want to open this mod:
https://www.nexusmods.com/stardewvalley/mods/3012?tab=description

Because I specifically want to know how this bit was handled: PercentDropChanceForMixedSeedsWhenNotFiber: The percent chance that mixed seeds will be dropped from weeds when fiber isn't dropped

Nexus Mods :: Stardew Valley

A mod that allows every seed to be found in mixed seeds. Compatible with every Json Assets crop mod and highly configurable.

rancid temple
midnight skiff
#

I like the look of this: https://www.nexusmods.com/stardewvalley/mods/21573?tab=files
Which I can read and I'd like to look at just figuring out a way to tweak it to up the drop chance from fiber of getting mixed seeds

Nexus Mods :: Stardew Valley

Removes all seeds from shops except from the traveling cart! Instead, you have to grow mixed seeds, which can now be almost any kind of crop, somewhat weighted for balance!

gaunt orbit
#

a lot more is doable with just CP now, but there's still many things (like mixed seeds) that are hardcoded and require c#

calm nebula
#

!decompile

ocean sailBOT
calm nebula
#

Works on mods too

midnight skiff
#

ok I'll go look at this!

uneven hinge
#

thank you!!

uneven hinge
#

oooh thank you!!!

midnight skiff
#

Oh god. Ok, I don't know C# so that's waaaaaaay over my head.

#

New tactic, is there like a "Fiver" way to request mods? (Politely, gratefully, of course.)
Or a place where people can request and fill requests?

calm nebula
#

!modideas

ocean sailBOT
#

If you have a mod idea that you aren't planning to make yourself, you can put it in the mod ideas github: https://github.com/StardewModders/mod-ideas

However, this does not mean anyone is guaranteed to work on your idea—modders who are looking for ideas sometimes go through and work on what they find interesting off this list. If you want to pay someone to make your mod idea, there are a few people who do commissions (mostly art, sometimes code); you can ask around, search usernames for the word comms, or see !commissions.

uncut viper
#

!commissions

ocean sailBOT
calm nebula
#

Also, fiver?

#

Lol

teal bridge
#

Is that a reference to a five-dollar bill, or...?

uncut viper
#

fiverr is a site

rancid temple
#

Fiver is a reference to a five dollar bill, yes

midnight skiff
#

Oh, it's a website where you can pay people to do small things.

uncut viper
#

people offer services for money (five dollars was the usual when it launched) and you p ay them to do it

teal bridge
#

Doing a mod for $5.... hmm, it would have to be about 2 lines of code.

midnight skiff
#

Perfect, thanks this is what I was looking for 🙂

#

Also, $5 wasn't the price -- it was a way to say "commission someone to do a mod" -- but I didn't know the language to use.

uncut viper
#

just commission in this case, then

midnight skiff
#

Yes, I'm looking at the site now. I'll feel it out.

#

Thank you for your info, everyone 🙂

velvet narwhal
gaunt orbit
#

yeah it really depends on the type of mod and scope
if it was like "take these 10 sprites and make them into objects" then yeah I'd do that for $5
if it was more like "I need a c# mod that does these specific things" then that'd be more expensive

latent mauve
#

"Add a TileData action to this map" is also an easy $5 if the TileData action already exists.

gaunt orbit
#

yeah

velvet narwhal
#

tbh that's volunteer work to me because i have plenty of copy and pastes

#

"figure it out, but here's a template"

gaunt orbit
#

hrrrg now I kind of want to put some work into my datagen tool
but I also want to go catch up on a web serial that just posted a new chapter
decisions, decisions

velvet narwhal
#

both?

#

or no two monitors KEK

gaunt orbit
#

reading and programming both take most of my attention so I can only do one or the other

lucid iron
#

I get nerd sniped into doing C# for free AquaThumbsup

#

But that is like, still my mod, different than selling labor I think

latent mauve
#

Yeah, I've never actually taken commissions for my mods because I feel like they're pretty easy to replicate/learn, but I did get a tip for one once, so that was cool.

silver pelican
#

halp moi mushy brain HOWL .
in sitting on non-furniture chairs (under Modding:Maps),
do the draw tile X and draw tile Y refer to the X,Y value when you click on a tile (e.g. 0,16) or like the tile (or grid?) count (0,1)? Also, I've that the Data/ChairTiles have -1/-1 value for them and am wondering what it means?

Im really confused lmao.

latent mauve
#

-1 typically means there's a hardcoded default value for that furniture type that it is pulling instead

silver pelican
#

Makes sense! I was trying to this:
(pressed enter too ealy)

"furniture/1/14": "3/2/down/couch/-1/-1/false"

gaunt orbit
latent mauve
#

this is what I did to make HxW's bathroom furniture toilets sittable, if it helps:

"hime_bathroom/1/7": "1/1/opposite/highback_chair/-1/-1/false",```
#

Had to do it for both rotations.

gaunt orbit
#

oh wait this isn't furniture please disregard

silver pelican
latent mauve
#

I did mine directly from the tilesheets pack

#

I doubt the png will be any different though between that and the bathroom furniture mod

#

basically, that counts each 16x16 as 1 tile, starting at 0

#

So my targeted tile X and Y for the first entry are the leftmost column (0), and the 8th row from the top (7).

#

and mine is a 1 tile wide, so the width and height are 1 each

silver pelican
#

okay, it seems im confused particularly about where im getting the second key (tile X, tile Y) and the draw tile X and tile Y. I've been counting directly from the tilesheet, is that not right?

latent mauve
#

how big is your couch? Is it the same size as the vanilla couches?

#

As Roku so kindly looked up for me in the code earlier, couches are 3 wide by 2 tall in the code as the default tilesheet size (-1).

silver pelican
#

its not custom tilesheet . im trying to get it from furniture.png from the vanilla files. (TileSheets\furniture).
its 3 tiles wide, and height is 2 tiles

latent mauve
#

oh!

#

Well in that case

#

No counting needed, I already labeled the default furniture.png's indexes xD

silver pelican
#

youre a savior!

latent mauve
#

so you can just count down from the grids here much more easily for position

#

so this would be 0 for x and 13 for y I think, one sec

#

yep, 13 for top, 14 for the actual seat

#

so that one seems right

#

but since you're using the default, you could probably get away with -1/-1 drawtiles

#

hm, maybe my sheet is less useful for this at this stage, actually. >_>

silver pelican
latent mauve
#

seems right

#

unless you absolutely need to change the offset, it's probably easier to stick with the defaults

silver pelican
#

alr. me is gonna load it :'>

#

its not doing it SDVpufferchickbig2

{
    "Changes": [ 
        {
            "Action": "EditData",
            "Target": "Data/ChairTiles",
            "Entries":{
                "furniture/0/13": "3/2/down/couch/-1/-1/false"
            }
        }
    ]
}
{
      "LogName": "Chair Tiles",
      "Action": "Include",
      "FromFile": "assets/Maps/Map_ChairTiles.json"
},
latent mauve
#

any error in your log?

#

also that does not look 3x2 xD

silver pelican
latent mauve
#

you'd want the furniture down in the brown couch area instead for the coordinates to match correctly.

#

so 4/2

#

see if just 4/2 is enough to fix it

#

for width

#

did you recolor the brown couch or is the seat cushion in the middle coming from somewhere else?

silver pelican
#

ahh yess this is one thing i forgot to mention (im so sorry XD.

latent mauve
#

we'd need your actual furniture png grid for the proper tile coordinate. LOL

#

ah, I see

#

gimme a minute to look into this

#

Is your furniture tileset that you're using loaded to Maps somewhere so you can use it in your map?

#

Or are you keeping it as an internal file in your mod folder?

silver pelican
latent mauve
#

Okay, and it's loaded with the Target as "Maps/furniture"?

#

If not, your key is wrong

silver pelican
#

Ah no, I didnt really load the furniture in the code. I just added the tilesheet for making the map. Though, if I'll load it. Wouldnt that override any other mod that loads furniture.png or not (like recolors or of that sort)?

latent mauve
#

That's why you need to rename your Target and your key if you do that.

#

But before we get into ANY of that

#

This couch isn't good enough for what you wanted?

#

in townInterior

#

It already has the middle seat as a chairtile, so I was curious as to if that would bypass the issue for you or not

#

but if it doesn't look good, then I'll pull that entry for a minute for us to look at

#

okay, so here's what we're gonna do

#

You want your tile X and Y in the key to be the exact middle cushion where you want to sit down

#

And you want your width and height to be a 1/1

#

here's the example for that couch: "townInterior/13/18": "1/1/down/couch/-1/-1/false",

silver pelican
latent mauve
#

We can probably make yours work, just need to load your texture correctly and then adjust the key coordinate for the rotation

#

So we're gonna tweak your coordinate a bit, because right now, I think it'd be trying to set the wrong tile

#

Supposedly, the wiki says it'll use your png filename without issue, even if it's not loaded, so I think you're okay with it staying in your mod folder

#

just gotta match your PNG filename exactly without the .png in the key

#

So let's change your coordinate to 1/14 in the key

#

"furniture/1/14": "1/1/down/couch/-1/-1/false"

#

Try that, assuming you are using the vanilla furniture.png and nothing's moved

#

0/13 would have tried to make you sit on the upper left corner, which is wrong.

silver pelican
#

( Slr, my cat keeps jumping on my table! cryingcat )
Alr, no need for loading then (small yay xd)

latent mauve
#

yep, you should be able to avoid loading it

#

if not, I'll walk you through how to do that properly without breaking the vanilla furniture.

silver pelican
#

launching the game rn

latent mauve
#

hooray!

silver pelican
#

omg

latent mauve
#

And you can sit on both sides?

#

so one more over to the right?

silver pelican
#

yes!

#

QuQ

latent mauve
#

excellent, that was our issue

silver pelican
#

thank you so muchh! i gotta note this issue so i dont forget why and how XD

latent mauve
#

and my sheet was still helpful in narrowing down the Tile coordinate of the seat, so yay

silver pelican
#

Thanks soo much for thoroughly teaching me 76756catlove

latent mauve
#

Now you just need to do it again for the rotation

#

So you'll change the direction to opposite (unless you have a separate rotation for left and right in the sprite sheet)

#

and we'll change your coordinates again to land on the seat for the rotated one. 🙂

#

for the 2nd entry

#

4/14

silver pelican
#

aaah right, the back rotation

latent mauve
#

this is the side

#

I'm sleepy and miscounted LOL

#

4/14, not 16

#

"furniture/4/14": "1/1/opposite/couch/-1/-1/false"

#

back is gonna be tricky

silver pelican
#

Thanks!
I do have one for the brown couch (side) so that'd be 4/17 .
For the back rotation of the blue couch, should it be 6/14? something like
edited: "furniture/6/14": "1/1/up/couch/-1/-1/false" ?

latent mauve
#

you'd want up for the back rotation

silver pelican
#

oop, my bad. what's the opposite for?

latent mauve
#

opposite tells the game to draw you facing the opposite of the direction you clicked on the seat from

silver pelican
#

AAH

latent mauve
#

so you don't have to do left or right if you only have one rotation that just gets flipped to the opposite side

silver pelican
#

got it! xd

#

gonna go ahead and load the chairtiles XD

latent mauve
#

it's not as consistent, so it's better to only use it instead of left or right

#

hopefully it's straightforward and draws the things right!

#

looks like it should detect it to do that on up, though

#

Based on the vanilla entries

#

I think you'll need to set the draw tile here though

tardy adder
silver pelican
latent mauve
#

yeah, you need the draw tiles. LOL

silver pelican
latent mauve
#

so find the coordinate of the couch back to draw as the back tile xD

#

you'll also need to put the asset name for the drawtiles in at the end of this one, or it will get weird

#

It defaults to Tilesheets/ChairTiles for those numbers, which is why they're so off

latent mauve
#

"furniture/6/14": "1/1/up/couch/6/13/false/TileSheets\\Furniture" I think?

#

It goes one higher depending on how it draws the back, and I'm not sure couch will function this way but we can try

#

can change couch to highback_chair here if it gets funky

#

"furniture/6/14": "1/1/up/highback_chair/6/13/false/TileSheets\\Furniture" is your alternate if the tile doesn't cover your full back

silver pelican
#

quick question, is there a command for reloading map changes? xd (idk if cp reload applies here)

latent mauve
#

patch reload would apply here

#

If it's the code

#

or the asset

silver pelican
#

alr

latent mauve
#

I change my map files all the time and patch reload to pull up the updated TMX xD

latent mauve
tardy adder
#

nope not at all

mighty quest
#

how can I make a buff last forever? (C#)
I thought the default -1 duration would do that, but nope..

brittle pasture
#

source ID takes the ID of the terrain feature (ie. the key in Data/WildTrees and Data/FruitTrees) not its produce

#

so for example if you want to limit a produce to mahogany trees you'd use "8"

brittle pasture
mighty quest
#

ok thanks for confirming that

latent mauve
#

I was gonna ask if it was just the Wild Trees asset key, but you edited before I could. 😄

tardy adder
#

Thanky Selph ><

latent mauve
# silver pelican XD mood

Now that Kath's query was unburied and answered, Nova, how are you doing with that back draw layer?

#

(you can do the same thing for the rotation if that gets weird too, just different coordinates)

silver pelican
#

im re-loading the game because I had a GID error. Its all good now.

"furniture/6/14": "1/1/up/couch/-1/-1/false/TileSheets\\furniture"
displays the same funny scene. so Im trying with the highback_chair

latent mauve
#

The exact same? Weird. Might need to make sure that the TileSheets reference is exact then, since by default it tries to load coordinates from Tilesheets/ChairTiles and the couch doesn't seem to exist there for some weird reason

silver pelican
latent mauve
#

Unsure if furniture needs to be capitalized there or not

#

Hmmm

#

Oh

#

You didn't change the -1s

#

After couch, it should be 6/13

#

Not -1/-1

#

That's your draw tiles

silver pelican
#

I tried the "furniture/6/13": "1/1/up/highback_chair/-1/-1/false/TileSheets\\furniture", but for some reason, it wont let me sit?

latent mauve
#

To draw over your person

#

You put 6/13 in the wrong spot

#

13y is the tile above your seat

blissful saddle
#

I think fire is trying to point it should be:
"furniture/6/14": "1/1/up/highback_chair/6/13/false/TileSheets\\furniture"

latent mauve
#

Yeah, like I said up here

#

Sorry, swapped to mobile while I make dinner so it takes longer to type

blissful saddle
#

I just got the last messages. just showing up after a long playing and test session

#

I will take a break through the weekend

#

my first mod has 550 unique downloads with only one issue related and fixed so far

#

I will take it as a success for my first game mechanics mod ever released

latent mauve
#

Congrats!

blissful saddle
#

first week ending very well SDVpufferchef

latent mauve
#

I have to re-release my child beds mod at some point to fix a very minor MoveEntries error, but I want to at least add something else to make it worth an update first

blissful saddle
#

very minor fix are good too. people that found the issue will be grateful for it

latent mauve
#

Yeah, but it's literally just adding a (F) to one of the MoveEntries IDs

#

So I feel like it's a waste since it's a harmless error and all that is happening is that the bed doesn't move up three spots in the shop

#

Maybe I can just add a config option or something with it, so people who want to not have to worry about trading for the beds can buy them all once they have the catalog?

silver pelican
#

ahhhhhh my bad. i thought i changed it xd alksdjalkdjalkda
ok so i loaded it up and this is what showed up

latent mauve
#

Okay, so it drew a layer but not in the right spot

silver pelican
#

i changed the 6/13 to 6/14 in the draw tile which worked as we expect it to be xd
"furniture/6/14": "1/1/up/highback_chair/6/14/false/TileSheets\\furniture"

latent mauve
#

Weird.

#

The high back chair example implied it needed to be one higher but whatever works I guess

#

Not the first time the wiki has confused me

silver pelican
#

thank you sooo much! i just need to set the brown armchairs and couches and im done with chairttiilless 5058stonedyay but before all that, breakfast pepelaughcry

rigid musk
#

Hello and good (insert time of day here)
https://smapi.io/json/content-patcher/a46f835811cd4211ae2f4f870c285387
I'm assuming I'm doing something wrong here - what I'm trying to do is get it so that when I walk on the tile it won't warp me to the new location unless I have 4 hearts with the NPC. I also want it to say - much like how it does with vanilla npc doors - 'you aren't good enough friends with'

royal stump
#

Action should be on the Buildings layer, TouchAction should be on Back, and NPCWarp is a map property rather than a tile property. And if you want that effect when walking into a tile, I think TouchAction ConditionalDoor <game state query here> on the Back layer would do it, just going by the wiki at least. SDVpufferthinkblob
(Alongside a LockedDoorMessage <failure text asset> on the same layer, apparently)

proper linden
#

Hi everyone! I'm getting ready to make a Community Center helper tool (I do know such things exist already, but this is a learning exercise for me and who knows, maybe people will find it useful)

Here is an entity-relationship diagram I put together to model the SDV items and any special requirements for obtaining them (weather, season, time of day) and the bundles & their requirements.

The idea is you'll be able to query the completed app in different ways -- get a full list of everything you still need and its requirements, or go "hey it's raining in summer" and see if you need to go fishing. Etc.

TravelCart = is it ever randomly available in the travel cart or not
GameType = vanilla or remixed to start, later on I'll implement support for mods that change the bundles

I would love to get feedback if anyone sees anything I missed or any brain fart I should fix before I get to coding. Thanks!!

vapid void
#

What should I name my farm

uncut viper
vapid void
#

It's because no one's replying to me

rigid musk
uncut viper
#

regardless, this isnt the right channel

woeful lintel
# rancid temple <@385527172783276032> Does FF work in 1.6.9? I only ask because the page seems i...

It worked fine last time I tried (not the latest version but I don't think it was affected by the quick patches), there's only one feature broken by 1.6.9 (the ability to remove the vanilla light from Fishtanks), but it's in a try catch so it doesn't break the game.
I received multiple "doesn't work anymore" posts on Nexus but the only one who replied to me asking a log fixed it by themselves...

royal stump
woeful lintel
proper linden
woeful lintel
#

I recommend SQLite

modest dagger
#

so is there a way to add a destination to the train station without using an additional mod?

#

wait the train station has no destinations to begin with

#

ffs

mighty quest
#

anybody know if DayStarted event runs when a farmhand joins a session in the middle of the day?

rigid musk
royal stump
rigid musk
#

OH oh i see i see

royal stump
#

so far, my best guess for a TouchAction locked door would be using TouchAction Warp with a mail flag, and if the warp doesn't happen, have a conditional Action Message to click somewhere nearby SDVpufferthinkblob

rigid musk
#

honestly it doesnt have to work like a door - The two main things I want are for a message to prompt saying if the player isnt high enough friendship level, as well as to have the friendsihp requirement for the warp

#

it acting like a door really isnt necessary since ... well you cant even see the door itself

proven narwhal
#

hey i have a question how do the lamposts in town work?

royal stump
#

a property on Back like TouchAction Warp location x y mail_flag would handle the conditional warp part, but I don't think the base game has a TouchAction that displays a message, so it'd probably just need to be an Action on something nearby (or the tile itself, on a passable Buildings tile)

ornate locust
#

It's a combination of a light and day/night tiles

#

@proven narwhal

proven narwhal
ornate locust
#

The actual light is a type that only shows at night, I believe. The drawn light on the tile is caused by it being drawn on the night tile

proper linden
#

That should fix it, at least for vanilla. I guess I should investigate whether any CC mods would make this not work before I get started.

ornate locust
#

like these guys here

proven narwhal
ornate locust
#

That's over here

proven narwhal
#

Ohhh i see i see

ornate locust
#

You put the day tile you want on the layer you want it on, list it in Day Tiles, and then list the tile you want it to swap to in Night Tiles

proven narwhal
#

im assuming thats under map properties?

ornate locust
#

Yeah it's in the map, Custom Properties

proven narwhal
#

ahh i see thank you very much

ornate locust
#

And the light in Light there is type 4, which I believe only shows at night. So it gives the illusion of a light bulb turning on when you combine the swap and the light

proven narwhal
#

ahhh ngl i ddint think it would be that simple

ornate locust
#

Oh, and it uses whatever tileset you use for the placed tile. You don't have to indicate what tileset in that list.

brave fable
#

you know, the love of cooking has been out for 3~4 years now, and in that time not one person has mentioned the energy and health labels on recipes are the wrong way around.
it took me until testing french to think 'hey, S stands for Santé'.

tender bloom
#

Heh

#

I admit I never actually check the amounts

#

I just eat one and see what happens

calm nebula
#

H stands for henergy

brave fable
#

that's understandable and all but surely someone in the last 4 years has said 'oooiiii ceci n'est pas énergie'

#

oooh actually looking at the commit history it popped up in the last year or two. no wonder then

teal bridge
#

Was it only wrong in French?

ivory plume
brave fable
#

however, they're still responsible for making the name 'mayonnaise de dinosaure' as long as it is

proven narwhal
#

IT WORKS 😼

drowsy pewter
#

This is the best thing I've ever tabbed in to see

obtuse pike
#

hi quick question: if i edit this door texture to get rid of the bit above, can i just color over it with black or is there something else i should do?

tender bloom
#
  1. where is the door texture used?
  2. you should make it clear probably?
#

black will make it show up black

obtuse pike
#

its the inside doors in all of the buildings

tender bloom
#

So, those doors open ,right — there might be some animations associated. I'm also guessing this is an edited texture, since it doesn't look familiar? So you'll want to figure out how to work around that — if it's your edited texture, do an EditData probably

#

an EditData in the replace mode should make that area clear if your new sheet has clear pixels there

hard fern
#

it's the door from rustic country interior right?

tender bloom
#

Note that pngs have transparency in addition to color, so black is not neutral

obtuse pike
#

yeah! it's from that mod so i have no clue about the inter-workings of it

velvet narwhal
#

if it's just a personal edit you can probably open up that mod's asset folders and find the doors and erase the parts that you want to, just make sure you don't go too far as the upper part of the door still needs to exist in some cases
so best be sure to check that the door is consistently uhhh something like 34px high and 16px wide (correct me on that)

vocal garnet
#

Hey folks quick q, has anybody picked apart how Ui info suite 2 does the subtexturing for the weather icon? Though of taking some time to put in a pr making it more agnostic and potentially custom-weather compatibile, but don't really understand how its generating its own texture sheet

tardy adder
#

:|

hard fern
#

the weather icon in the corner?

tardy adder
#

Why is it that when I test and try to break it, it don't do this but I release and boom >:|

hard fern
#

isn't that just from cursosrs

brave fable
#

that's weird, Game1.parseText() appends a space to each line after parsing.
i'm sure this normally isn't an issue, but i fed it into a second parseText() call later by accident and it double-newlined it since the space went over the width lol

#

wonder why it does that

tiny zealot
tardy adder
#

->

#

I now have no eyes

#

Thanky Ichor

hard fern
#

) (smiley face with no eyes)

proven narwhal
#

i placed down a picnic table on my map and i knows that i can sit on it ?????????

#

i though id have to give it a property to do that???

#

is it tied to the spritesheet or something

tiny zealot
#

it's based on the tiles, yeah. there's a data asset that specifies which tiles in which spritesheets can be sat on

proven narwhal
#

oh thats wild ngl

tiny zealot
proven narwhal
#

ooooo

tardy adder
#

I return to making ze custom tapper, which is not even the mod's main thing o(<

proven narwhal
#

btw if i were to set up a new custom chair would that be placed in like the content json or the tmx file

latent mauve
#

If you're adding a new custom chair to the game itself and want it to be a furniture object people can place in the world, you'd add it via content.json

#

If you're adding a new custom chair that you only expect to be used in a map and not freely placed or moved, you can just put it in the tmx file

proven narwhal
#

oh i see i see

#

since im only adding chairs on a map would it be like a tile property?

tiny zealot
#

you put info on your tiles into a data asset Data/ChairTiles

proven narwhal
#

oh so how would you do that?

tiny zealot
proven narwhal
#

ahhh alr ill take a looksee

tiny zealot
#

note that you only have to do this for tiles that you have added to the game

#

if you are using existing tilesheets, they should Just Work

proven narwhal
#

alr alr got it

warm tulip
#

Hello i have a prob with my npc mod; Smapi says : [Content Patcher] Could not load content pack 'NpcTest': content pack has no content.json file. But he is in the pack (in visual studio) but not in the stardew mod pack when i launch, the other folder are here but not the content.json. Can you help me ?

latent mauve
#

Can you screenshot your Visual Studio window with the name of the file in it?

#

You may also need to verify that you've saved the content file as a JSON, if it is in the right place but the wrong file type.

warm tulip
tender bloom
#

a) Shiko does not have open perms
b) it looks like you are making a C# mod, which would not have a content.json

brave fable
#

ceci n'est pas une content pack...

tender bloom
#

you can either have a content pack or a C# mod, not both

#

if you need both, you need to make 2 mods

#

and have them work together

#

!manifest

ocean sailBOT
tender bloom
#

note that there's 2 options here

brave fable
#

yep, you don't need Visual Studio Community to update a content pack, and you don't need a solution, modentry file, etc.

warm tulip
#

so i can supp the mod entry C# then remake the manifest only for content pack ?

brave fable
#

yes, copy the content, manifest, i18n, assets files to a new folder and delete the VSCommunity solution entirely; you don't need it at all and it won't do anything

#

while you're free to make C# mods separately, you won't need it if you're simply updating Shiko

warm tulip
#

but if i dont use visual studio, what did i suppose to use ?

latent mauve
#

Depending on what you need to update, you could take a look at the various NPC tutorials and resources for 1.6 to 'rebuild' Shiko with the new data model if that helps.

brave fable
#

you can use any text editor you like SDVpufferthumbsup Visual Studio Code, Sublime Text, Notepad++, ..

warm tulip
brave fable
#

these don't let you build-and-deploy in the same way Visual Studio Community does, though, so you'd be copying your working files to your Mods folder whenever you test (unless you work from the Mods folder)

latent mauve
#

Visual Studio Code is wonderful for editing JSONs since it'll show you where your syntax has gone wrong, but yeah, they don't 'deploy' for you

latent mauve
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:

latent mauve
#

The new data model makes it way easier to add things like the spouse room, so it's definitely worth rebuilding it to use the new structure.

warm tulip
#

ok i will follow this

latent mauve
#

(TMXL which it used to use for the spouse room is dead and buried, so you'd need to swap that over to fully use CP to add it anyway)

warm tulip
#

ok ty for help

brittle ledge
#

(there's specifically a section toward the end of the tutorial that lists out what changed in 1.6. Most of it will probably be stripping out any dead frameworks she might have been using.)

teal bridge
tranquil quiver
slender badger
#

Often when the parser says there's an issue with a particular line, it's because there's a problem with a closing quote, bracket, or comma in the section just before it

latent mauve
#

^ This is absolutely the issue, because the symbol is preventing line 507 from closing, so it's trying to read everything else as still being part of a string

tranquil quiver
#

tysm that was the problem

proven narwhal
#

i got new custom chairs working >:)

#

now to figure out how to make the map respond to seasons

proven narwhal
#

💀 how do i make outdoor maps respond to seasons

brittle pasture
#

if your tilesheet name starts with seasonname_ then the game should automatically switch between seasonal variants

#

so if your map uses the spring_somethinghere tilesheets it should work automatically

proven narwhal
brittle pasture
#

then yes it works automatically

proven narwhal
#

oh nvm i was just making it more complicated that it was lmao

gentle sapphire
#

Is there a mod/way to stop spouses from changing wallpaper/flooring...its annoying to have them change a rare wallpaper (like from the calico shops)

rigid musk
inner harbor
#

can you make farm animals swim?

#

(Also, I wish when you changed wallpaper, you got the original one back again, although I guess that's not very realistic)

pine elbow
#

Hi, just wanted to make sure that the "Why?" in the screenshot isnt some kind of code that im editing out for my translation mod. It just looked suspicious being so close to the other code gibberish that comes before it 😛

slender badger
#

The "Why?" is just regular dialogue, but that "code gibberish" is kinda important if you're changing anything dialogue-related, even if it's just a translation

#

You should read about what it does on the wiki

pine elbow
#

Trying to minimize mistakes so I dont have to debug a bunch later, thats all ^^

slender badger
#

It would answer questions like this, for example

rigid musk
#

What is the internal file name for the desert music?

#

I just mean name sorry*

brave fable
#

all the track names are listed on [[Modding:Audio]] SDVitemjukebox

rigid musk
#

I know they're listed there but I don't know which one is the desert one :(

#

I also cant figure out which one is the 'going down a staircase' one

proven narwhal
#

making winter textures is so agonizing 🥲

rigid musk
#

(for the sound bank not music itself)

brave fable
#

oh right, desert is wavy

rigid musk
#

oh that.. that's delightful honestly

brave fable
#

and stairs are stairsdown

rigid musk
#

pain wel I just didnt see that one on the list then. I should have (since that one's obvious) but... oh well

#

Thank you very much

hard fern
#

SDVpufferflat 6/12 portraits redrawn

modest dagger
#

is there any way to set a condition to when a tile is animated, or like it's only animated at a certain time

brave fable
#

you can't otherwise pause, play, or stop tile animations.

modest dagger
#

so...it would animate during the time set and not any other time then?

brave fable
#

you'd set the tile index to the index of an animated tile or a static tile depending on your time condition

modest dagger
#

okay

brave fable
#

it may have taken me an embarrassingly long time, but today i made the cooking menu absolutely bulletproof

hard fern
#

cupcake monologue

brave fable
#

i love u Vanilla Cooking Recipes but i read cookbooks for the pictures more than the plot

#

bless chinese for just working, even if it's completely illegible

#

is DriedMushrooms a valid base game item? and if so, is it meant to say Dried

#

oh i see it's a flavour item, it just doesn't have a default text other than the prefix

#

i guess that works out better for Jelly and Wine huh

hard fern
#

Dried

brave fable
#

are these meant to be translated? strings/objects.zh-cn has some english lines

  "DriedFruit_Name": "Dried",
  "DriedMushrooms_Name": "Dried",
  "SmokedFish_Name": "Smoked",
  "HaleysLostBracelet_Name": "Haley's Lost Bracelet",
  "HaleysLostBracelet_Description": "A family heirloom.",
#

wow, korean is flawless. they even translated all the resource clumps. the only english in there is CD, TV, and Ape

astral prism
#

how do you make one of those framework mods that people can target with just CP?

#

in C#, so like they put what they want in some json file using entries in CP and then the mod reads off it. do i just use Mods/ModID/whateverfile.json?

brave fable
#

you can use any asset name you like! minus the .json of course.
but something along those lines, sure. you're just Load-ing a data model asset the same as any other game asset you'd patch with CP

astral prism
#

oh nice

#

what's the standardised way that other C#-CP frameworks do it then?

#

i can't think of any off the top of my head or i'd just check someone else's source

brave fable
#

standards? with these limitless possibilities?

astral prism
#

🤣

hard fern
#

Reminds me of

#

!god

ocean sailBOT
#
brave fable
#

in a roundabout sort of way you could call LOC's CP translations an example of what you're looking for

astral prism
#

LOC ? sorry i haven't been keeping well up-to-date with the modding scene recently

#

😅

calm nebula
#

Lines of code

brave fable
#

oh, i pushed love of cooking 2.0 recently

astral prism
#

ohhhhhh NO WAY

#

i loved love of cooking i can't wait to get that back in my modpack

brave fable
#

it's split into a C# main, a CP content pack, and another CP pack for translations

hard fern
#

Loc sure is multiple lines of code

brave fable
#

the CP content pack loads the strings file:

// Strings
{
    "Action": "Load",
    "Target": "{{ASSETS}}/Strings",
    "FromFile": "assets/blank.json"
}

and any CP translation packs will target that with their changes, e.g.:```json
{
"LogName": "Love of Cooking - Translations [EN]",
"Action": "EditData",
"Target": "Mods/blueberry.LoveOfCooking.Assets/Strings",
"Entries": {
// Mod info
"mod.name": "Love of Cooking",

    // Config options
    "config.page.info": "Info",
    "config.page.options": "Options",

    // . . .
#

which is basically what you're doing, just the data happens to be strings

calm nebula
#

(You can also look at the East Scarpe c#)

astral prism
#

so this bit is what i'm looking for "Target": "Mods/blueberry.LoveOfCooking.Assets/Strings",

calm nebula
#

To see how nutty it can get

astral prism
#

yeah

#

and then in C# i'll just normally load it from ModContent

#

nice sounds easy enough

calm nebula
astral prism
#

what does {{ASSETS}} point to?

brave fable
#

again the Target asset name can be anything you like, the only standard is to start with Mods/ and include your UniqueID somewhere

calm nebula
#

You load it from GameContent

astral prism
#

GameContent not ModContent? interesting. thank you !

brave fable
#

ASSETS is a dynamic token with a value set to that Mods/blueberry.LoveOfCooking.Assets path

astral prism
#

oh nice i see

brave fable
#

it's just shorthand

astral prism
#

thanks, yeah i get it, like a C# const

brave fable
#

yeah most of my dynamictokens aren't very dynamic hahah

astral prism
#

i've been so damn busy lately i'm getting rusty, i need to keep up to date 😅

brave fable
#

you missed the midnight mod update launch party and everything SDVpufferpensive there were free canapés