#making-mods-general

1 messages · Page 12 of 1

next plaza
#

I think it's just delayed some ticks, not not happening?

supple jackal
#

I'm planning to timegate the event anyway so you don't get home from the wedding and then it's immediately like HEY DO YOU WANT BABIES

next plaza
#

Could be wrong, but that seems weird to have all CP mods with tokens not working first day for farmhands

velvet narwhal
finite ginkgo
#

So it depends™️

modest dagger
#

item descriptions not fun

supple jackal
modest dagger
#

coming up with 50 for similar items

uncut viper
supple jackal
uncut viper
#

ahhh, gotcha SDVpufferthumbsup

supple jackal
modest dagger
#

yea but mine are all artisan goods n such that i kinda made up like what do you write for 'dried chicken drumstick' like that doesn't even sound like an actual thing but it's one of my products

velvet narwhal
modest dagger
#

stolen thanks

supple jackal
#

"The leg of a chicken, seasoned and dried to preserve it. It has a certain medieval flair."

#

Lol feel free to make a google doc of them or something I love coming up with stuff like this

velvet narwhal
#

i actually don't remember vanilla item descriptions, and since my items are only used for events, they have strange flowery descriptions

uncut viper
#

There's a chewy little guy in there...

#

(thats the only one i remember)

gaunt orbit
#

is there anyone here using the 1.6.9 beta who can check something in ilspy real quick?
there's a custom-tool-related bug in 1.6.8 and I want to know if it's been fixed in 1.6.9

brittle pasture
#

sure what are you checking

gaunt orbit
#

in 1.6.8, calling GetOne() on a tool does not copy InstantUse, which means sometimes the game will create glitched tools

#

(specifically Tool.GetOneCopyFrom())

brittle pasture
#

doesn't seem like it's fixed

gaunt orbit
#

thanks, I'll report it on the forum then

#

or maybe I should just ping pathos for this one, since it's a technical change that doesn't affect vanilla

#

@ivory plume There's a small bug in both 1.6.8 and 1.6.9 affecting custom tools- Tool.GetOneCopyFrom() does not copy InstantUse, which can lead to glitched tools under certain circumstances. (IE. animating when the tool data says they should be instant.)
It's not noticeable with vanilla tools because the Wand sets InstantUse in the constructor anyways, but it does affect tools from mods.

valid folio
#

Hello, how are you?

Is there any documentation on how to create mods that fulfill the following function:

I want to create a machine that produces an artisan product by placing two ingredients (there should be three but I'll explain later) and then gives us a product based on them.

  1. Perhaps the easiest way is to create it as a recipe

The product is created with sugar and milk, it also has vanilla essence. But in the base game there is no vanilla plant, which would lead me to create the plant and integrate it into the mod, which should be easier than the other option, using the vanilla plant from another mod (I think cornucopia has one) and making my mod compatible with it so that it uses it.

If anyone can help me or guide me, I would really appreciate it. I was already helped previously with a visual issue by suggesting that I use a mod called nightshade and it helped me a lot, so I ask for your good will and solidarity again.

lucid iron
#

it's possible to do this with just content patcher, but you can use extra machine configs if you want your machine to take 1 main ingredient + 2 fuel

brittle pasture
#

(depends on if they want their machine to have other ingredients that use other fuels)

lucid iron
#

as for the vanilla ingredient, you can have the machine check for vanilla_item context tag

#

following cornucopia's setup

drowsy pewter
#

you're welcome to duplicate cornucopia's vanilla code and art (as per our permissions). if you use the same item ids, then players with both mods will only have one vanilla item instead of two

#

definitely up to you

#

for documentation

#

you can do it either with a machine or with a recipe, it depends more on how you want it to feel for players.

#

To match the base game, it would be more appropriate to do a recipe, but there are many mods with complicated machine products like that, so its personal choice

old edge
#

I had an idea of adding a light source around the new item I made. Do I need C# for this?

ornate trellis
#

random question but is there a vanilla event where the farmer laughs

brittle pasture
#

Big Craftables you can just set the light source field in their data

brittle pasture
ornate trellis
old edge
#

no it's an object!

round dock
#

For locational dialogue, do y'all include the coordinates or just do the generic map location? Idk if the "beach" is the proper location for the beach. (also thank you tiakall)

ornate trellis
#

new event achieved puffersmirk

#

could spice it up a bit more maybe, but that I can do later. now onto finding out how to change dispo stuff to have the change happen after this heart event thonking

inland cedar
#

do .modData sync in multiplayer? for example Chest.modData["key"]

next plaza
#

Yes

#

Though keep in mind if editing modData on Farmer, that you can only edit it for the local player, not other ones

lucid iron
#

hm then you need to use harmony to patch in the light source bit bolbthinking

lucid iron
velvet narwhal
#

(SDVpufferflat halt is not working the way i expected it to work)

ivory plume
hallow prism
#

pathos, i wondered

#

i tried having a small hasmod check on an include for an inmutable patch of another token (that was inside the include)

#

and apparently, it's either directly on the patched content or as a dependency, i wondered why include check wasn't enough, because it's checked at another level?

#

like, once its checked, you don't "retain" what was checked, for ex?

brave dove
#

Hello there!
I'm working on a mod in CP, a machine to sort mixed seeds. I want to have several variants of the machine itself, that will use the same config and do the same thing, while the only think different would be the texture used for sprites (that I want to base on the recipe used to create the variant). Is there an easy way to achieve that without having to copy the config to each BigCraftable separately? (So far I got stuck on the fact that each machine variant has to use separate ID, which means that in theory I would have to insert config for each ID into "Machines" - and I really want to avoid it, it's complicated already 😅)
Any suggestions welcome, thank you in advance! 🥰

hallow prism
#

why not just making an AT pack for your mod?

#

(alternative Texture)

brave dove
brittle pasture
#

Probably not, but AT is still the best option for that kind of thing I think
you can make your one machine have multiple recipes if you want

hallow prism
#

AT let the user choose, usually

real kiln
#

Anyone know why this is occuring?

lucid iron
#

you didnt define this method

real kiln
#

oh is it cause I used OnChatMessagedRecieved and not OnButtonPressed? Sorry am new !

uncut viper
#

the thing you add to the ButtonPressed is just a function you create

#

it doesnt need to be called "OnButtonPressed" its just common

#

if you wrote a function called ThingsToDoWhenButtons() then you'd add it like helper.Events.Input.ButtonPressed += this.ThingsToDoWhenButtons;

#

(ofc make sure to include the right parameters in the signature)

real kiln
#

Okay I got you! yeah cause I am using OnChatMessageRecieved lol! appreciate it

uncut viper
#

you wont be able to use your OnChatMessageReceived function as a button pressed event bc it doesnt take the right arguments

real kiln
#

Yep noticing that, so do I even need to use it?

lucid iron
#

i dont think there's a ChatMessageRecieved event

uncut viper
#

i dont know what you want to do with it

#

but yes like chue said there is no chatmessagereceived in the API either

#

cant make up an API function that doesnt exist

lucid iron
#

you have to harmony patch ChatBox.textBoxEnter or similar

calm nebula
#

I mean, you don't have to harmony patch that

#

(Chatbox.chatbox.OnEnterPressed is a possibility as an event to listen to.)

#

it looks to me like chatboxen are created when saves are loaded and destroyed when you go back to title, so you have to do it as a SaveLoaded....and I guess you have to do some reflection bullshit to be ahead of the other event listener, huh

#

anyways.

#

harmony's probably easier SDVpufferthumbsup

real kiln
#

Idk I been struggling all day and night with just trying to get it to read if input is "/spawn" lol

#

damn

lucid iron
#

tbh it's much easier to just make a console command

real kiln
#

yeah im starting to realize that lol

lucid iron
#

how much do you want it to be chat box event?

uncut viper
#

it would actually be really simple to harmony postfix the runCommand function

real kiln
#

i just wanted to make a simple mod that if I do in game "/spawn (item ID)" so that way when i make a different mod I can just load the item in lol

uncut viper
#

that function gets called whenever a chat message is sent that starts with a /

#

and the command is passed to it

#

its just a big switch statement

lucid iron
#

oh for something like that u can use cjb spawner

#

or the player_add console command

uncut viper
#

(that said i would also just really recommend cjb item spawner instead too)

real kiln
#

Yeah I just wanted to try my own I didnt think it would be this difficult hahaha

#

yeah I might just get it

#

Okay if thats the case, do you guys know whats something easier to make for first time? Like a c# one, like something i dont need to publish but try out lol

calm nebula
#

like, yes, it's great! But also, like,

#

I've seen enough scary harmony bugs that when there is a nice event to listen to...

uncut viper
#

i mean i agree that no harmony is preferable to harmony i was just saying its not that much more work than making a console command when theres a nice function already there for you

#

esp when it can be done with a super safe postfix

real kiln
#

i dont even know what harmony is so maybe i stay away for now lol

lucid iron
#

i think you may want to just run through standard learn C# things if you never programmed before

real kiln
#

Yeah so I go back to college this term in 2 weeks for programming so been trying to get things learned before hand!

modest dagger
#

Hey Selph if you're lurking and willing I need help with the fuel part of EMC

lucid iron
#

modding is great but also kind of a non standard situation for programming blobcatgooglyblep

real kiln
#

that is true but i loveee stardew , I also worked on an pixel art game before as lead graphics so I am decent at that half lol

gaunt orbit
#

Oh wow that's pretty impressive

real kiln
#

yeah it was called Archewood!

modest dagger
#

Problems at at line 138, 217 and 296. Basically the recipe for Raw Brisket works just fine using oil as the first ingredient, but then the next three that also use oil don't work and i'm not sure how to fix it

rancid temple
#

!json easier sharing

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.

modest dagger
#

thanks one sec

rancid temple
#

I feel like the required item should be the meat and the extra cost should be the oil

modest dagger
#

when I do it like that tho it just ignores the oil and only does the basic recipe

brittle pasture
#

Follow Rokugin's advice, but also...
you have multiple trigger rules using Oil as the primary input. Only the first one will be used.
You need to use the same OutputRule, and add multiple OutputItem with different fuels

real kiln
#

Okay wait you guys said spawning an item using chatbox event a little difficult to start off, do you guys think adding a new special powered book is a good place to start?

modest dagger
#

lemme wrap my head around what you said, so currently I have 4 separate recipes all using the same thing. But with your mod I need to do it so like this one item uses each plant to get a different outcome, so like instead of 4 separate recipes using oil it's 1 with 4 variants?

uncut viper
#

depends what you want the book to do

real kiln
#

Ill just make a new book with something easy to add, like a book that doubles experienced gain from mining or maxs your profession

#

if that is easy lol

brittle pasture
#

It's not specific to my mod - if you have multiple entries in the output rules array, the first eligible one will be picked and the others are ignored

lucid iron
#

remember to account for per screen data for exp gain

real kiln
#

will keep that in mind! ill try to add a book in lol

uncut viper
#

tbh i dont know enough about netarrays to know if you can listen to an event on the mining netint inside it specifically so my first thought is a simple harmony patch but then i can feel atra's spirit looming over me in disappointment

#

though is it a UI Info Suite th ing that shows the amount of experience you gain above your head when you mine a rock for example? or do you see that number in vanilla too

real kiln
#

Lol, maybe ok how about it makes the profession go right to 10?

#

I dont usually see exp above my head

uncut viper
#

UI Info Suite thing I guess, so you'd need the harmony patch to make that accurate for the double exp anyway
just maxing your skill to level 10 should be easy enough though without harmony

#

just know that the book itself is not going to do that

#

all that happens when you read a book is that you get a stat added to your farmer

#

e.g. if you read Horse: The Book then your "Book_Horse" stat becomes 1

#

and then the game checks if you have that stat as necessary

real kiln
#

Oh so maybe I make an easy stat?

uncut viper
#

the stat doesnt matter, you just need to watch for when the stat changes

#

and then act on that change

lucid iron
#

You can do that in day ending I think

#

So that people get to see the lvl screens

uncut viper
#

dayending would work, as long as you dont mind making the player wait til they sleep

#

i assume the smapi dayending event fires at the same time that the trigger would? which should be before all the skill stuff i think

#

if you wanted them to know they leveled up immediately though i was just thinking you'd just grant them a whole bunch of experience

#

so they wouldnt miss the lvl screens anyway

#

just figure out how much is needed to go from current level to level 10 and grant that much

real kiln
#

Hm that would be a fun one to make

modest dagger
#

If this is spam i'm deeply sorry but should my rules look like this instead then?

              "Triggers": [
                {
                  "Trigger": "ItemPlacedInMachine",
                  "RequiredItemId": "{{ModId}}_CowP",
                  "RequiredCount": 1
                }
              ],
              "UseFirstValidOutput": false,
              "OutputItem": [
                {
                  "Id": "Raw Ground Beef",
                  "ItemId": "{{ModId}}_CowMB",
                  "CopyQuality": false,
                  "MinStack": 3,
                  "MaxStack": 3
                },
                {
                "CustomData": {
                "selph.ExtraMachineConfig.RequirementId.1": "247",
                "selph.ExtraMachineConfig.RequirementCount.1": "1",
                "selph.ExtraMachineConfig.RequirementInvalidMsg": "Needs oil, and 1 bovine melon"
                },
                  "Id": "Raw Brisket",
                  "ItemId": "{{ModId}}_CowMA",
                  "CopyQuality": false,
                  "MinStack": 2,
                  "MaxStack": 2
                },```
uncut viper
#

(@ Link you would also need to remember to... well, remember that you already granted experience in the first place, so that it doesnt keep happening every night)

#

(like a bool to keep track of whether the book effect already happened i mean)

real kiln
#

Okay I will write this all down!

#

ill give it a go tonight, and then reach back tomorrow (unless im stumped during)

brittle pasture
#

However, it might be better from an end user perspective that you make multiple machines

modest dagger
#

sigh

brittle pasture
#

machines are complicated lol

modest dagger
#

I'll keep that in mind but thanks for your help I got it to work how I wanted it

plucky reef
ocean sailBOT
#

Log Info: SMAPI 4.0.8 with SDV 1.6.8 build 24119 on Microsoft Windows 10 Home, with 11 C# mods and 0 content packs.
Suggested fixes: One or more mods are out of date, consider updating them

plucky reef
#

It works fine with that commented out line replacing 'projectile', gives a placeholder texture instead, but I want it to be my custom one and I don't know why it doesn't load my texture.

teal bridge
uncut viper
#

those have a context tag on them that says what skill to give e xperience to, but the amount is hardcoded

lucid iron
teal bridge
#

lol, of course it is... why wouldn't that number be hardcoded?

lucid iron
#

oh but it's static darn

plucky reef
lucid iron
#

replace GetTexture()?

plucky reef
#

I know earlier you were saying to use LoadAsset but I don't know the namewithoutlocale to reference.

lucid iron
#

well you need that too ofc

#

but now that your sheet is loaded you must make projectile use it

teal bridge
#

...though, that said, it's probably a way easier Harmony patch to just twiddle with the exp than to do any of the other stuff you two were talking about.

uncut viper
#

(i should clarify, if its a book specifically for a skill whose itemid starts with "SkillBook" then the skill in question to get EXP is determined by the number that the itemID ends with)

plucky reef
#

I'm just confused because the other mods I'm referencing that are creating projectiles don't use either of those, they just use the Texture2D and ModContent.Load stuff.

uncut viper
#

its not difficult to just add a OneSecondUpdateTicked event to check for the stat and then grant exp

#

the hardest part would just be figuring out the precise amount of EXP needed which you'd need to do either way

#

(bc you dont wanna just give a fuckton bc then you'll get mastery, too)

lucid iron
#

besides the default projectile sheet

teal bridge
#

Do you have to know the precise amount though? There's no real penalty if you go over.

lucid iron
#

it can also use texture from an item

#

i guess you can just do that if you like, make a fake item with ur texture

teal bridge
#

I thought points didn't count toward mastery until you max all skills. In fact I'm almost positive, since I just passed that stage on my run yesterday.

#

Oh, but I suppose you mean if it's also the last skill to get maxed, then those extra points start counting toward mastery.

uncut viper
#

looking at the gain experience function it looks like you're right, the mastery stuff happens after the level gain check, i assumed it would rollover

#

er

#

happens before* the level check

brittle pasture
lucid iron
#

idk whether the meowmere mod is just cp or has C#, but if the former then take a look at StardewValley.GameData.Weapons/WeaponProjectile.cs

#

oh urite they r use the png path instead of the target

uncut viper
#

if your total combined level is not at or above 25 when you gain the experience then you will not get mastery if im readin the code right, so i guess you could just grant a fuckton of exp

lucid iron
#

that was the thing we said to replace with content load things Bolb

teal bridge
#

Yeah I think you can just throw a ton of exp at it. It's not how I personally would do it but it's a good enough duct-tape solution.

uncut viper
#

they said they didnt know anythin about harmony and would rather wait on trying it

#

it also would not be my first chosen solution either

brittle pasture
teal bridge
#

Right, I guess if there's a very strict "no harmony" rule then it's not viable, but as far as Harmony patching goes that one's dead simple, just a postfix to add a whack of exp when reading the book. (and you can also check to see whether the skill is already maxed, to avoid messing up mastery if a second book gets acquired). The whole thing is like, 5 lines.

uncut viper
#

i guess technically you should still check if theyre at mastery levels before doing it, though

plucky reef
#

well the frankenstein getting cobbled together is from a bunch of different ones and if I had to guess why the person I took from used Initialise it's because it's referencing config values.

uncut viper
#

bc if reading the book grants exp through other means (like maybe someone adds a context tag to it later) then it might push them over the mastery edge

teal bridge
#

'course it can be done without Harmony as well via some global variables and per-frame checks, it's messier though.

uncut viper
#

you dont need global variables or anything, just check every second if the player has the stat

#

the per-frame/per-second stuff though, yeah, no real way around that afaik

teal bridge
#

The global state is not "does player have stat" but "did we already see that the player has stat"

uncut viper
#

i said earlier you'd need to track whether theyve applied it before but i was wrong they can actually just decrement the stat again right after

teal bridge
#

That needs to actually be persisted to the savegame, so it's definitely adding some complexity.

uncut viper
#

if you only ever do it if the stat is 1 and then decrement itto 0 after, it will only fire if they read the book again

#

if you dont want that possibility then just increment it to 2 instead, and only ever check for 1

#

since reading a book will increment the stat, not specifically set it to 1

teal bridge
#

What's a little more hardcoding, right?

brittle pasture
uncut viper
#

s'basically the same way you'd need to do it anyway to persist it to the savegame

teal bridge
#

I'm not a big fan of the magic numbers, but 'tain't my mod.

uncut viper
#

just might be a little wonky with farmhands since their stats arent synced til sleeping and they might leave early... or something. idk. i just have vague memories about farmhand stat syncing being discussed

#

its not really a magic number though, the stat being 1 is just the same as a bool saying "did we already see them have the stat"

teal bridge
#

That's... pretty much the definition of a magic number.

lucid iron
#

say are there any mods out there using machines InteractMethod

uncut viper
#

i dont know how else you would expect to track something without tracking it

lucid iron
#

i feel kinda dum for recommending button changed event for "open menu when interact with machine" kind of features bc i didnt know about this field

teal bridge
#

Checking >= 0 and marking separately as done is different from checking for exactly 1.

#

If you reset to 0 you're messing with stats. If you make > 1 non-functional then... well, maybe it'll work but you've made 1 a magic number.

uncut viper
#

whats the difference between checking "did we mark separately as done" versus "is this stat 1" in terms of magicness then

#

and where would you save the separate marking in the save file

brittle pasture
#

Better Crafting adds the ability to trigger actions/map actions on interacting with a BC

teal bridge
#

Because the 1 is an integer that can be any value. A specific value having a specific semantic meaning is magic. It's normally just a number.

#

As for where, that would be in the save data, I'm not sure what you mean by where?

brittle pasture
teal bridge
#

Do you mean like, what API? It's the IDataHelper APIs, ReadSaveData and WriteSaveData.

plucky reef
ocean sailBOT
#

Log Info: SMAPI 4.0.8 with SDV 1.6.8 build 24119 on Microsoft Windows 10 Home, with 11 C# mods and 0 content packs.
Suggested fixes: One or more mods are out of date, consider updating them

lucid iron
#

again you have to use the target

#

not the path

lucid mulch
#

if you are in C# like that, and want to load from your own folder, use the Helper.ModContent.Load

plucky reef
#

ahhh

lucid mulch
#

Game1.content / GameContent is for the wider asset pipeline, not an alias for your local folder

plucky reef
#

since it's custom, not base game, Game1 do not work

lucid iron
#
private static void OnAssetRequested(object? sender, AssetRequestedEventArgs e)
{
    if (e.Name.IsEquivalentTo("Mod/MyProjectile"))
    {
        e.LoadFromModFile<Texture2D>("assets/myprojectile.png", AssetLoadPriority.Exclusive);
    }
}

Game1.content.Load<Texture2D>("Mod/MyProjectile");
#

the benefit of doing this is that other ppl can resprite your projectiles if they want

#

i usually do Mods/{ModManifest.UniqueID}/... for the target, but u get the idea

plucky reef
#

so how does this work with 10 other spells that use different textures? Lots of lines with ifs?

lucid iron
#

no u use sprite index

#

but if you want to load 10 separate 16x16 textures, you can Bolb

plucky reef
#

so I would make a custom tilesheet and then reference the location on the tilesheet

#

oh I thought it was 24x24

lucid iron
#

i dont remember tbh kyuuchan_run

brittle pasture
#

you're already redoing the draw code, you can totally make 240x240 projectiles if you want

lucid iron
#

yea do whatever u want wew

rancid temple
#

Embrace chaos

plucky reef
#

shooting ballistae out of a crossbow, sounds sick

lucid iron
#

i did check though

ornate trellis
#

hey everyone, how would I go about using specific sprites for festivals? so far I only saw whole sheets getting added via "Appearance", do I really gotta make tine sheets for every festival cuz I got em all on my main sheet rn

lucid iron
#

base game projectiles are indeed 16x16

past knot
#

Finally done with the portraits and sprites. Does the Manifest.json look correct??

lucid iron
#

teoshen wanna make ur projectile classes available so i dont have to make my own?

#

smapi 2.9 is not right

rancid temple
#

!json you can use the validator for manifest as well

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.

lucid iron
#

unlikely it'll die bc content patcher, but we are at 4.0.8 (4.1.0 after 1.6.9)

rancid temple
#

Makes sharing a lot nicer than a phone picture of your monitor

ornate trellis
#

rn im just sitting here like ConstanceConfused

past knot
lucid iron
#

i think you do have to split up the sheets void

#

based on what i know of appearances

ornate trellis
#

dang

velvet narwhal
ornate trellis
#

look how tiny theyd be....

#

mostly just...1

lucid iron
#

dont they still need all 4 facing directions

ornate trellis
#

idk

lucid iron
#

cus the player can turn npc by talking

velvet narwhal
#

yeah the player forces a turn

ornate trellis
#

ive never done anything with festivals and all i find is about adding them to it, not the art part

plucky reef
#

spriteeffect flip the left facing one

velvet narwhal
#

uno momento

past knot
#

Like this?

velvet narwhal
#

depending on the festival you'd also have to do a walking animation

ornate trellis
#

huh why...

velvet narwhal
#

(flower suffering)

ornate trellis
#

so i need to do the walk around all sides sprites part?

#

does that also mean i need the 4 standard expressions for the portraits?

rancid temple
# past knot Like this?

I think this looks fine, you can technically drop the minimum version from ContentPackFor but you can also leave it to force only compatibility with specific versions

velvet narwhal
#

you'd only need the 4 directions, and a back walking if you have a flower festival

#

you don't have to have portraits attached

lucid iron
#

the portraits depend on whether the dialog you wrote use em

velvet narwhal
#

flower festival can be shoved into the base sheet because it has it's own position

past knot
#

im still a little confused on how to do schedules and pathing, however..

velvet narwhal
#

schedules are ...... SDVpufferpain

ornate trellis
#

hm

rancid temple
#

Hm, actually, do you need MinimumApiVersion at all? That's not something I include in mine lol

ornate trellis
#

well i just do a flowerdance standing around sprite, she wont dance

velvet narwhal
#

that's fine then

#

appearances doesn't have a sprite index unfortunately

#

but you can probably just do an editimage -> when condition -> sprite index

rancid temple
ornate trellis
#

i guess I can keep the festival portrait as a festivalportrait.png all in one and jsut use the right $ then, hmm

lucid iron
#

someone would have to try to run your mod on 1.5.6 install basically

past knot
lucid iron
#

definitely a real field tho

velvet narwhal
#

it's real, i just don't use that field SDVpufferclueless

lucid iron
#

if u are use content patcher then content patcher would have set the min api version already

rancid temple
#

Oh, I didn't scroll down far enough lmfao

lucid iron
#

only C# mods with no dependencies are at any risk for not setting this

velvet narwhal
#

tia's guide is fine and perfect, you just have to understand when you're making an npc that you're actually having roughly 6-7 tabs up at once

past knot
#

so for setting schedules, sprites and portraits, would i be doing this in game using debug mode, or through the content.json?

velvet narwhal
#

all through content.json

rancid temple
#

Debug Mode just gives some map information doesn't it?

velvet narwhal
#

whereami is useful if you don't want to use Tiled for events

#

OH THE COMMAND ANE MADE FOR ME

#

!reload

ocean sailBOT
#
How do I reload my changes while I'm still in game?

-You cannot reload tokens, that's a forced restart unfortunately
-If you've done any CHANGES, then type into SMAPI:
patch reload YourMod.UniqueID
-If you've done i18n DEFAULT.jSON changes, then type into SMAPI:
reload_i18n then
patch reload Your.ModUniqueID
-C# Visual Studio has a feature called "Hot Reload": https://learn.microsoft.com/en-us/visualstudio/debugger/hot-reload?view=vs-2022
-C# Rider has the same: https://www.jetbrains.com/help/rider/Hot_Reload.html"
-Generally working in C# it will be called "Hot Reload" (usage may vary)

rancid temple
#

Also if you're changing stuff with NPC's you might have to go back to the menu

#

Things like schedules are only done at the beginning or end of the day

velvet narwhal
#

oh right schedules needed to be added into the reload *does not work with reload

rancid temple
#

At least reloading the save is way faster than restarting the game though

ornate trellis
#

man

#

this new system got me confused again

velvet narwhal
#

i would offer to sort all of your stuff for you but that'd require some finagling SDVpufferclueless

past knot
#

wait i guess im asking the wrong questions??? i for starters need to figure how how to put the initial npc into the game. just anywhere in general atm

velvet narwhal
#

so the core you need for an npc to exist is : portrait, schedule, sprite, "disposition" (aka, the data/character edit) squints i don't remember if there's anything else

#

i don't think gift tastes matter

ornate trellis
#

so i got this so far and rn I am wondering where my pngs come in

"Appearance": [
                        {
                            "ID": "Usual Outfit",
                            "Precedence": -10,
                            "Weight": 1,
                            "Portrait": "Portraits/TheFishmonger",
                            "Sprite": "Characters/TheFishmonger"
                        },
                        {
                            "ID": "Egg Festival Outfit",
                            "Condition": "ANY \"EVENT_ID festival_spring13\",
                            "Precedence": -20,
                            "Weight": 1,
                            "Portrait": "???",
                            "Sprite": "???"
                        },
]
velvet narwhal
#

appearances then pulls from where you loaded it to and goes "okay that's this npc's information now yoink"

ornate trellis
#

i did load em in my dispo, i was wondering bout if i need to take that somewhere else or change that hm

velvet narwhal
#

if you loaded them at all, it should be fine

#

just make sure it's the same path/filename

ornate trellis
#

well i have the standard set loaded rn since i guess i gotta do more for the festival sprites and also load the second portrait sheet but yea

velvet narwhal
#

(one sec i'm gonna pull up the npc.cs or wherever the dispo is to see what's actually required for an npc to exist)

ornate trellis
#

hmm

#

how would I go about the targets tho

#

still just TheFishmonger?

velvet narwhal
#

target for what, appearances?

ornate trellis
#

(maybe looking at matteos intense data was the wrong move lol)

#

for "Portrait" and "Sprite" for the festivals

velvet narwhal
#

oh they're set to what i've loaded them/named them as

ornate trellis
past knot
#

:'DD why did i get timed out there..

velvet narwhal
#

bad word or markdown?

ornate trellis
#

yeah but why...huh..

eternal snow
#

markdown url <3

velvet narwhal
#

we all get bonked by the markdown

ornate trellis
#

scratches head

past knot
#

haha oooo

ornate trellis
velvet narwhal
#

do you want me to take a look

ornate trellis
#

I think i am getting confused about targets again

past knot
#

just to avoid that again. something like this? the dialogue part would look something like the sprite part??

velvet narwhal
#

dialogue requires you to create a base blank.json load, hold on

#
    "LogName": "BlankLoads",
    "Action": "Load",
    "Priority": "Low",
    "Target": "Characters/Dialogue/EdelweissSeung, Characters/Dialogue/MarriageDialogueEdelweissSeung, Characters/schedules/EdelweissSeung, Strings/Schedules/EdelweissSeung",
    "FromFile": "data/Blank.json"
},```
#

and that blank.json is quite literally { }

ornate trellis
#

so, i got this load for the standard sheets

{
            "LogName": "Constance Portraits",
            "Action": "Load",
            "Target": "Portraits/TheFishmonger",
            "FromFile": "assets/Images/Constance/Fishmonger_portrait.png"
        },
        
        {
            "LogName": "Constance Sprites",
            "Action": "Load",
            "Target": "Characters/TheFishmonger",
            "FromFile": "assets/Images/Constance/Fishmonger_spritesheet.png"
        },

Where would I throw "Fishmonger_portrait2.png" then (etc the otehrs i dont have yet) I thought the Target always gotta be the internal name of the npc...

velvet narwhal
#

i think of target as, "i am throwing these files into this folder"

#

whatever name works for me to remember, that's what i use

rancid temple
#

Pretty sure only the base portrait and character sprites should be the name of the character, the game handles finding those I think

#

But anything in appearances is manually set by you

velvet narwhal
#

extras, with the exception of {{NPCNAME}}_Winter

#

gets ignored unless you ask the game to fetch it

ornate trellis
#

huh

rancid temple
#

Appearances is like a built in override

ornate trellis
#

wait so...

velvet narwhal
#

you can become chaos like me

#
    "LogName": "Load EdelweissSeung's Long hair",
    "Action": "Load",
    "Target": "Portraits/EdelweissSeungL_Spring, Portraits/EdelweissSeungL_Summer, Portraits/EdelweissSeungL_Fall, Portraits/EdelweissSeungL_Winter_Outdoor, Portraits/EdelweissSeungL_Winter_Indoor, Portraits/EdelweissSeungL_Beach, Characters/EdelweissSeungL_Spring, Characters/EdelweissSeungL_Summer, Characters/EdelweissSeungL_Fall, Characters/EdelweissSeungL_Winter_Outdoor, Characters/EdelweissSeungL_Winter_Indoor, Characters/EdelweissSeungL_Beach, Characters/EdelweissSeungL_FBeach",
    "FromFile": "assets/{{TargetPathOnly}}/{{TargetWithoutPath}}.png"
},```
ornate trellis
#
            "LogName": "Constance Festival Portraits",
            "Action": "Load",
            "Target": "Portraits/TheFishmongerFestivals",
            "FromFile": "assets/Images/Constance/Fishmonger_portrait2.png"
        }, 

(plus sprite i dont have yet)

and

{
                            "ID": "Egg Festival Outfit",
                            "Condition": "ANY \"EVENT_ID festival_spring13\",
                            "Precedence": -20,
                            "Weight": 1,
                            "Portrait": "Portraits/TheFishmongerFestivals",
                            "Sprite": "Characters/TheFishmongerEggFestival"
                        },
#

?

finite ginkgo
velvet narwhal
ornate trellis
rancid temple
#

Might be best to name the Targets a little more specifically

#

Assuming you're intending to have a sheet of portraits specifically for the festival

velvet narwhal
#

i think void is doing dialogue all from one sheet, so it'd just be the correct $# for whatever festival

rancid temple
#

Unless all your festival portraits will be the same

ornate trellis
#

yeah I just have one portrait for each festival so i figured that one can all go in one sheet :B

past knot
#

is there another tutorial a bit more detailed than Tia's? this is what i have, but im unsure if i have to have more than just these files?

rancid temple
#

Ah, well then yeah, looks good

ornate trellis
#

was just gonna differ them with which $ i gonna choose

rancid temple
#

Tia's is pretty much it as far as I know

#

I was able to make a basic test NPC following it, so I know it's good

ornate trellis
#

theres lemurs but that might be confusing to newbies since it was written pre 1.6?

rancid temple
#

Tia can't help me be an artist or writer though :P

velvet narwhal
rancid temple
#

Well, I think it's technically missing a couple things, but you can easily fill those gaps with the wiki

#

It's got everything you need to make an NPC work though

velvet narwhal
#

well other people have written events so that wasn't necessary SDVkrobusgiggle

past knot
#

ah okay. So, am i at the point where its okay to load in the game?

rancid temple
#

You can always try, also don't be afraid of it not working

#

That's part of the process

velvet narwhal
#

change out my npc's name for your internal npc's name

#

and create a blank.json and change the "FromFile" to wherever you put it

#

but yeah don't be afraid of the red screaming text it doesn't hurt that much

#

i'm actually really curious what word got me bonked when i was dissecting my event code

past knot
#

wait the format is not "1.5" is it? is that the game version i need to put or...?

velvet narwhal
#

format is content patcher's format

past knot
#

Thanks!

gaunt orbit
gaunt orbit
#

hey nice!

past knot
#

:DD

#

yeaaah..this whole npc thing if defo new and VERY confusing to me. ive only ever done mods that replace pngs like fashion sense's mirror or tool pngs

velvet narwhal
#

it's definitely one of the most undertaking mods to create

#

(in content patcher)

past knot
#

for sure

#

XD but i think im too inept to try any other way

velvet narwhal
#

it only gets worse, because you see things like spacecore or BETAS and you go, "i want nuanced things for my npc that sounds nice"

past knot
velvet narwhal
#

it's really about seeing your npc in game that really fulfills the dopamine high

past knot
#

All my braincells are in one basket right now and this 🤏 close to hitting the panic button from just trying to get the npc into the darn game SDVpufferwaaah

rancid temple
#

Remember to take breaks, especially with something this involved

velvet narwhal
#

i wasn't kidding when i said 6-7 tabs

#

it's very good to take multiple breaks, that's why i use this chat as a scapegoat brain relief SDVpufferclueless

past knot
#

Holt crap it actually loaded nothing is red??

rancid temple
#

A lack of red is nice, as long as the game is actually doing what you want still lol

velvet narwhal
#

yellow text makes me squint unless i know it's something that doesn't exist

past knot
#

Now my next hurdle is figuring out how to set him on a spawn point to actually see him????

velvet narwhal
#

should be home

past knot
#

Never mind the red struck me LAST SECOND lmao

past knot
velvet narwhal
#

in your data/character edit

past knot
ocean sailBOT
#

Log Info: SMAPI 4.0.8 with SDV 1.6.8 build 24119 on Unix 6.6.46.4018, with 4 C# mods and 1 content packs.

past knot
#

never been happier to see red oddly enough

velvet narwhal
#

our favorite red, missing a } or ,

past knot
#

mighta totally been the exta , at the end

rancid temple
#

Extra commas are fine

#

The game doesn't care about them, only the validators do

past knot
#

then im not actually sure why its yelling at me lol

rancid temple
#

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

velvet narwhal
#

oh maybe it's ]

ornate trellis
#

ngl these are my standard tabs open for my sdv modding master tab lol

velvet narwhal
#

since it says changes deserializing array

rancid temple
#

I had whittled my open tabs down because I'm not currently working on anything lmao

velvet narwhal
#

roku left me behind only to be free

rancid temple
#

But then I decided "maybe I'll finish my list of mail flags" and that opened 4 more tabs

velvet narwhal
#

did you add the mailflags that aba found last night?

rancid temple
#

Currently waiting for 1.6.9 to be released before finishing my crane game mod

velvet narwhal
#

something about FirstPurchase_crib_remove and FirstPurchase_crib_somethingsomething

past knot
rancid temple
#

Or more specifically for the Space Core API to get the virtual currency stuff again

#

Not sure, I dumped by whole list on the modding wiki and started working on converting it to tables

rancid temple
#

There's also a lot of info missing from where the flags are raised and used

ornate trellis
#

its 3am i am wondering if i should go to bed

velvet narwhal
#

godspeed, i hate editing wikis

rancid temple
velvet narwhal
#

yes, void

rancid temple
#

Missing a comma at the very end

#

Sorry

velvet narwhal
#

format needs to be closed

rancid temple
#

Missing }

#

Not a comma, you have to close the whole json file

#

Close might be the wrong term when talking about the entire file lmao

velvet narwhal
#

clears throat for every whole sandwich, there requires { } two pieces of bread

#

fair

past knot
#

Ahhh

rancid temple
#

That's probably way easier to parse than the programming jargon I was about to spit out lmao

#

That also applies to [ ]

velvet narwhal
#

and " "

rancid temple
#

No half sandwiches allowed

past knot
gaunt orbit
#

but what if I like open-face sandwhiches

lucid mulch
#

this is a sandwich shop not a pizza shop

past knot
#

P a i n

velvet narwhal
#

pizza shop next door

#

now i'm curious about where single pipes are used-- my adhd is going haywire dammit

lucid mulch
#

if you are referring to | in C#, its for bitwise operators

past knot
#

Yeah I'm absolutely lost it yells at me no matter what format I close the [ with

lucid iron
#

what layer depth should i use to make something always draw behind the player, but draw in front of buildngs

ornate trellis
#

im sure the 5 hours listening to disturbing mysteries in japan will do me very good in my sleep

#

i surely will dream of making my mod

velvet narwhal
#

what depth is the player even drawn at

#

1f?

lucid iron
velvet narwhal
#

i think depth uses floats?

lucid iron
#

yea i gotta figure out what float

rancid temple
#

What if you put -0.1f

velvet narwhal
#

euuuuuuuh probably something crazy like .01923

brittle pasture
#

Farmer.getDrawLayer is a good place to start

rancid temple
brittle pasture
#

so you want some value below that to draw behind the farmer

lucid iron
#

bolbthinking yea i guess i just gotta do that

#

very unfortunate that i cant just slacc and add a constant value kyuuchan_run

past knot
#

I hope yalls crops grow healthy @velvet narwhal @rancid temple

gaunt orbit
rancid temple
#

!vsc if you're not using a program with validation I suggest one

ocean sailBOT
rancid temple
#

It'll catch things like this before you even get done

velvet narwhal
#

(notepad++ requires an addon, but at least it's nice to read unless you get the flashbang issue)

rancid temple
#

I usually suggest VSC because it has validation baked in, but I know you can download plugins for N++ to add it

#

I really wish N++ would remember my theme settings, I like to use it for other things but not if it's gonna blind me

velvet narwhal
#

i really don't know why it does that to you

rancid temple
#

Me either, it only started somewhat recently

real kiln
#

Button are you still here?

velvet narwhal
#

no but prevalent c# coders are

#

shuffles away

lucid iron
#

r u make ur book still

#

there was a big discuss if u scroll up

rancid temple
#

Considering the volunteer nature of people helping here, it's best to just ask your question and hope that you get someone you won't have to re-explain the context to, but be prepared to do that anyways

lucid iron
#

thanks selph & wren

rancid temple
#

My gamer instincts are screaming at me to move out of the red

real kiln
#

Yes I am, I am going to just work on the book "book of stars" and enhance it. but ill scroll up chu/e and take a look ! and yes rokugin ur right

lucid iron
#

hm actually

#

when im on hoed dirt it draws a shadow

#

but it doesnt when im not on hoed dirt

past knot
#

So for where the npc walks, does that all go in the content Json? Or the blank

lucid iron
rancid temple
#

Since cramming everything into content will start to get to be a lot

ornate trellis
#

nothing except a set of brackets goes into the blank.json

past knot
#

That makes sense yeah. I suppose I'm just not understanding tias guide haha

rancid temple
#

Your blanks should always remain blank, you will be editing the Target they create in order to add the stuff you need

ornate trellis
#

portraits and sprites you can put into the content.json too

rancid temple
#

Essentially, everything goes into your content.json, Include is an Action you can use to break up your content.json into separate json's for organization

#

I have to stop putting off going to eat SDVpufferpain

past knot
#

I attempted to look at Sam's schedule for reference

#

Needless to say it was the beginning of my break SDVpufferdead

velvet narwhal
#

you'll definitely get a lot of information out of the unpack

past knot
#

I'm not even sure what I'm looking at SDVpufferwaaah

velvet narwhal
#

tia breaks it down pretty well in the schedule portion i'd say

#

Time MapName Xcoord Ycoord Facing Animation StringDialogue : if more than one, separated by a /

past knot
#

Would custom npc fixes also be useful?

velvet narwhal
#

i am unsure of what that does

#

the most basics of basics, you can just require smapi and content patcher

past knot
#

Ah

velvet narwhal
#

that's all you need

tiny zealot
#

yeah i think most or all of the "fix hardcoded thing about NPCs" mods are obsolete now

velvet narwhal
#

i'm freed from one more responsibility event written

tiny zealot
#

even i made one during the 1.6 alpha... vanilla ate it five days before release (this is a good thing)

velvet narwhal
#

i don't know what CFD does exactly either (custom fixed dialogue)

tiny zealot
#

that one let you define NPC-specific dialogue for hardcoded generic lines. there may still be a few that vanilla didn't add a key for but i can't think of one

velvet narwhal
#

ah, i think i just get around it with GMCM config telling the player "i'mma overwrite some things, just so you know you installed my mod and you're not romancing this npc it is no longer my problem"

#

i think i know which ones though, like if people wanted specifics for proposal/engagement maybe

tiny zealot
#

yeah that sort of thing. they got new dialogue keys, so you can just define them. it's great

velvet narwhal
#

...that reminds me, did i nuke those from my code

#

oh wait no i have specialty ones because i wanted to do a funny with the fortune teller

#

(i'm waiting for the acceptpendant dialogue command)

rancid temple
velvet narwhal
#

((dehardcoded crane game prizes))

lucid iron
#

Did smapi eat any mods

velvet narwhal
#

a good chunk of npc mods got eaten

lucid iron
#

I thought vanilla ate those

rancid temple
#

Hm, not sure if SMAPI itself has done that

velvet narwhal
#

oh true

gaunt orbit
#

I started writing a machine framework during the alpha and it got eaten literally a week after I started it lol

velvet narwhal
#

i know content patcher ate a LOT of mods

lucid iron
#

It's not really about making something "good enough" i feel

#

More that you are fill in a pot hole

#

And then vanilla properly pave over it bc it just makes sense

rancid temple
velvet narwhal
#

(screams in impostor syndrome)

tiny zealot
velvet narwhal
#

i will not pressure myself to think of something that needs to be dehardcoded, i will just enjoy my npc hole that i've dug far far into the earth

tiny zealot
rancid temple
#

Access denied

lucid iron
#

oh i have something actually

tiny zealot
#

oh, sorry, i guess it was an invite-only thread (it's archived now)

rancid temple
#

Ah

#

Kind of wild that it doesn't provide any context to know why I don't have access lol (alas, discord)

lucid iron
#

@ivory plume can we pass Trinket.OnDamageMonster the new isBomb bool? Storing and passing isCrit would also be really useful for making effects similar to golden spur

velvet narwhal
#

(i forget, is there actually a rhyme or reason for when we're supposed to post on forum vs just pinging pathos?)

lucid iron
#

hm not sure but i been assuming that we can ping pathos about 1.6.9 rn bc it's beta period

velvet narwhal
#

ig pathos will just say "post this in full detail on forum for me pls"

lucid iron
#

yea he did say that for the trinket light sources thing, understandable cus it would need much refactor

vernal crest
#

👀 I was even reading the BETAS documentation because I was hoping to use your NPC location GSQs. But I didn't read anything else so I didn't know you had a TextAboveHead action. My takeaway from this is that I need to read ALL your documentation for it ASAP!

velvet narwhal
#

oh spacecore pinged me for a manual trigger failure i probably did that wrong in my code

uncut viper
#

(oh ignore the part in the TextAboveHead documentation that says dialogue commands are supported i accidentally copy-pasted that from setnewdialogue lmao. TextAboveHead absolutely does not use dialogue commands) i fixed this now

ivory plume
past knot
#

okay hello im back

#

and with questions

velvet narwhal
#

oh good, i haven't started my new responsibility always happy to help with npc questions

past knot
ocean sailBOT
#

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

lucid iron
#

you two want a thread?

velvet narwhal
#

probably best since some things slip my grasp

#

i shirk responsibility of thread creation by avoiding becoming a cheeto

vernal crest
#

Yes I will supervise the thread to bonk Avi if they go too fast

ivory umbra
brittle pasture
#

it's poorly worded, probably should be like "if explicitly set to null" since it will default to Robin if not set

plucky reef
#

I don't want to ping chu/e and pester them but omg it's finally working (placeholder art, now that I know it works and can get the tail I can make it actually pretty and maybe an animation). The OnAssetRequested was it, so now I need to figure out how to get it to be dynamic to the spell being cast.

#

this has been the big roadblock, I didn't want to start exploring other areas until I got the art put into game figured out, ah this opens up so many more options for the next thing to do although now I think I want to play with custom sound effects.

#

I think this now puts me at 3% feature complete to my design document.

velvet narwhal
#

love watching your progress on it, my pipedream after this semester is a dnd-style expansion, so if you get it out by december or february i'll be happy to set a dependency

plucky reef
#

Sword and Sorcery will probably come out first and have more to it.

naive wyvern
#

two cakes is so real

plucky reef
#

although I don't know how easy it will be to work around/with S&S since it seems more of its own mini-expansion, mine will be more plug and play into anything.

velvet narwhal
#

if i can throw content packs into it for my own flair, i'll take it

#

well further on down that line i don't mind setting dependency i assume, it's gonna be a rough semester for me SDVpufferclueless

plucky reef
#

between my current classes, childcare/housework, and work, I get maybe 3 hours a week to work on this so it'll be slow progress.

next plaza
#

(For what it’s worth, other mods can add new abilities to S&S too, though I’d probably want to add some proper APIs if anyone is actually interested)

naive wyvern
#

me, on my knees: pleasepleasepleaseplease

brittle pasture
#

finally, my wiki account is no longer considered new and I can make large scale edits

floral portal
#

[Content Patcher] SMAPI blocked asset replacement for 'Maps/Greenhouse': the 'MODname' content pack incorrectly set asset to a null value.

Hi I'm a beginner and I'm currently creating map data.
First of all, I tried to create data for Greenhouse, which only needs to be replaced, but it was rejected with the above error.

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.

brittle pasture
#

the most likely cause is that you're accidentally blanking/replacing Maps/Greenhouse

floral portal
#

I'm sorry. I am not good at English, so I use a translation tool. I am sorry if this is an odd question, as it is difficult to read the fine nuances.

#

Are you saying that the “content” code is likely incorrect?

brittle pasture
#

yes. Post your code using the link above

lucid mulch
#

go to the smapi.io/json link, paste in the contents of your content.json file and can more easily help you.
But the issue is related to how you interact with Maps/Greenhouse

lucid mulch
#

ok and relative to your content.json file, there is a folder called assets that contains a file called Greenhouse.tmx?

floral portal
#

The code itself is very simple, and once it detects an error, it deletes the mod data. And when I put in the Greenhouse mod distributed by someone else, I get the same error message.

latent mauve
#

I give up on trying to make these walls and floors decoratable for the bathroom renovation. Nothing has worked at all, even though I've gone through and completely changed the FloorIDs and WallIDs dozens of times, and added the new IDs to the map properties as well as the Back object layer.

#

There is something I am missing but I cannot figure out what.

floral portal
#

Yes. The folder “assets” and the edited “Greenhouse” file are included.
Is it because I installed the mod data created by someone else first when I was adapting my own mod data?

#

If that is the cause, I would like to try that once if it can be solved by putting commands in the data started from scratch in Smapi and checking the operation.

latent mauve
#

Also my bathroom renovation mod apparently kills the spouse room decor (it turns into an empty room) when I patch reload despite not touching that area, so that's fun

past knot
#

at the moment im putting continuing to schedule coding on hold. Anyone know what dimensions need to be used for a building?

#

or, at least dimensions for the community centure sprite, as that is the size of the building im going for

lucid iron
#

Buildings don't have sprite size limits, tho u would want 16xN wide

brittle pasture
lucid iron
#

Comm center is huge though, are you sure u want that for a farm building KasumiDerp

past knot
#

oh! its not a farm building, its an npc home

#

on that topic, id like to ask for some resources and tools on how to edit maps both exterior and interior

velvet narwhal
#

we can throw that into the same thread

lucid iron
#

Maps/spring_town

vernal crest
floral portal
ocean sailBOT
#

Log Info: SMAPI 4.0.8 with SDV 1.6.8 build 24119 on Microsoft Windows 10 Home, with 95 C# mods and 235 content packs.
Suggested fixes: One or more mods are out of date, consider updating them

floral portal
#

Sorry for the newbie question, but is there a better way to switch between the data + mods I'm originally playing with and the minimal mod data for testing in order to do a test check?

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"/>.

brittle pasture
#

unfortunately I'm not that familiar with map modding (and I also have to go to bed soon), but someone else who is more familiar with this problem can help you

vernal crest
#

I amm!

#

I can help

floral portal
floral portal
floral portal
vernal crest
floral portal
latent mauve
vernal crest
floral portal
vernal crest
#

It will look something like this but will have a much longer name inside the quote marks than just "paths"

vernal crest
floral portal
vernal crest
floral portal
vernal crest
vernal crest
floral portal
vernal crest
jolly flame
#

hi! planning on making a map recolor, does the stardew modding wiki have a detailed guide on what part in the tilesheets goes where ingame?

floral portal
vernal crest
rancid temple
floral portal
vernal crest
real kiln
#

hey guys i start college for programming in a few weeks and been trying to make mods in stardew in the mean time, does anyone know if this video would suffice and teaching me the basics till then? I know a bit of it, but someone recommended me it. Thank in advance https://www.youtube.com/watch?v=wxznTygnRfQ

C# tutorial beginners full course (C# for Unity)
#C# #tutorial #Unity
⭐️Time Stamps⭐️
#1 (00:00:00) C# tutorial for beginners 🚀
#2 (00:06:30) output 💬
#3 (00:10:48) variables ✖️
#4 (00:19:32) constants π
#5 (00:20:35) type casting 💱
#6 (00:27:49) user input ⌨️
#7 (00:31:24) arithmetic operators 🧮
#8 (00:35:54) Math class 📏
#9 (...

▶ Play video
jolly flame
rancid temple
ocean sailBOT
rancid temple
#

I used Codecademy to learn the basics of C#

vernal crest
rancid temple
real kiln
#

Wait so yellow book is what your suggesting or codecademy?

vernal crest
#

Or yeah, actually opening the individual maps

rancid temple
#

Each map has what tilesheets it's using in Tiled

#

I suggest Codecademy because it's what I used, but other people suggest yellow book

#

I think they're both technically free with means to pay for them

real kiln
#

Can you do me a huge solid and link me the codecademy lesson?

rancid temple
vernal crest
real kiln
#

Thanks ! ill give it a go 🙂

vernal crest
#

@rancid temple Guess who just got an invalid tile GID error?

rancid temple
#

It's like one half "nice" and another "that sucks" lol

#

Would you be willing to send it to me so I can mess around with it?

vernal crest
#

I expected that I'd get one so I made a backup before making the changes that caused it

rancid temple
#

Ah well that's good at least

vernal crest
#

Let me check with fireredlily since it's their map I'm troubleshooting for them

#

Permission granted. You all good for me to DM you?

rancid temple
#

Yep

floral canyon
#

Hi guys, does anyone know why "OnTimeChange" doesn't work on editing map properties and if there's away around it? I have two different ambient lighting for day and night but if you are inside the room when the night comes, the lighting doesn't update. you need to go out and back again to see it.

finite ginkgo
#

That's likely the map property itself not auto updating and is no fault to CP or ontimechange

rancid temple
#

I would guess map properties are cached until you re-enter the map

#

Otherwise it would be wild to check something that the game doesn't expect to ever change more frequently

finite ginkgo
#

Although there should be a ambient light property for night specifically

rancid temple
#

Yeah there is

#

AmbientNightLight

#

Well, I can say for sure that you shouldn't change the GID's manually

vernal crest
#

Break more?

rancid temple
#

Oh yeah, absolutely nuked the map and even getting them to set back to the right numbers wasn't fixing it lol

floral canyon
#

btw for those who helped me earlier: I was able to get my night tiles working and solved the gid error SDVpufferparty

inland cedar
#

what is the diff between these 2?

{
Game1.chatBox.addErrorMessage(shop.ShopData.Items.Count().ToString());
Game1.chatBox.addErrorMessage(shop.itemPriceAndStock.Count().ToString());```
#

nvm

cedar gorge
#

If I ever would want to completely replace the trigger to unlock ginger island from the quest to custom bundles I would be stepping into c# territory, right?

gilded comet
#

layer depth sucks

#

nevermind guessed and it works right

#

👍

rocky stag
#

haiii :3 I can't seem to find much space core documentation except the read me, so i couldn't really tell what do do and just guessed, so would this be a valid recipe? if not what would i have to change, any help is always welcome :3

ornate trellis
#

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

drowsy pewter
#

its not

#

feel free to copy the format from that

rocky stag
#

Thank uuu! <3

sharp hornet
finite ginkgo
#

Would you like a message with it?

sharp hornet
#

Thanks 🙂

finite ginkgo
#

Done SDVpufferheart

rocky stag
finite ginkgo
#

To use the CookingRecipesOverrides feature from SpaceCore you first need to add the recipe to Data/CookingRecipes, as the key used in the spacecore feature should match the key of a recipe present in Data/CookingRecipes

rocky stag
#

OOOOOOH

#

THANK UUU

#

ok

#

so it works but when i try and hover over the item in the crafting menu it exits the menu

#

ughhh i guess i fixed it?

#

but now when i try and press e

#

this gets put in the log

#

[14:26:04 ERROR game] An error occurred in the base update loop: IndexOutOfRangeException: Index was outside the bounds of the array. at SpaceCore.VanillaAssetExpansion.VAECustomCraftingRecipe.get_Description() in C:\Users\space\Programming\StardewValley\StardewValleyMods\SpaceCore\VanillaAssetExpansion\VAECraftingRecipe.cs:line 152 at SpaceCore.Framework.CustomCraftingRecipe..ctor(String name, Boolean isCooking, CustomCraftingRecipe recipeOverride) in C:\Users\space\Programming\StardewValley\StardewValleyMods\SpaceCore\Framework\CustomCraftingRecipe.cs:line 21 at SpaceCore.Patches.CraftingRecipePatcher.RedirectedCreateRecipe(String name, Boolean isCooking) in C:\Users\space\Programming\StardewValley\StardewValleyMods\SpaceCore\Patches\CraftingRecipePatcher.cs:line 162 at StardewValley.Menus.CraftingPage.layoutRecipes_PatchedBy<spacechase0.SpaceCore>(CraftingPage this, List1 playerRecipes)
at StardewValley.Menus.CraftingPage.RepositionElements()
at StardewValley.Menus.CraftingPage..ctor(Int32 x, Int32 y, Int32 width, Int32 height, Boolean cooking, Boolean standaloneMenu, List1 materialContainers) at StardewValley.Menus.GameMenu..ctor(Boolean playOpeningSound) at StardewValley.Game1.<>c__DisplayClass952_0.<UpdateControlInput>b__0() at StardewValley.Game1.UpdateControlInput(GameTime time) at StardewValley.Game1._update(GameTime gameTime) at StardewValley.Game1.Update(GameTime gameTime) at StardewModdingAPI.Framework.SCore.OnPlayerInstanceUpdating(SGame instance, GameTime gameTime, Action runUpdate) [14:26:04 WARN game] WARNING: Mismatched UI Mode Push/Pop counts. Correcting.

lucid iron
#

can you post the edit you did to Data/CookingRecipes (not the spacecore recipe override)

pine elbow
#

@ivory plume Sorry to be a bother, I just found a thread you replied to where someone lost the farmhouse_marriage.xnb file. My save file is completely busted because I accidentally had a defunct mod installed, SMAPI says I'm missing that file. Could you offer any advice? I'd be eternally grateful ❤️

paper sundial
#

If it's actually missing, try verifying the game files, if it's corrupted, try reinstalling

pine elbow
#

I don't really know whats happening. I'm probably posting in the wrong channel actually sorry about that. Basically I upgraded to the 2nd house upgrade but still had Bathroom after 2nd Houseupgrade by DevilBro installed. It completely wrecked the house tilesheet or something. I removed the mod and tried to reload but then the loading screen would boot me back to main menu on a loop. So I put the mod back which works but the map is all messed up :/

#

Sorry I'm not a modder

drowsy pewter
pine elbow
floral portal
# vernal crest Do you feel confident that you can add the "paths" tilesheet back into the map?

I had to leave the meeting because I had to respond to an urgent business call. I apologize.

I've been staring at the wiki since then, resetting to Vanilla's default Greenhouse many times and trying to edit it. And I finally figured out how to change the path when I add a new tile sheet (in this case a spring_outdoors tile sheet).... I was also able to confirm that it works!
I honestly didn't think it would be difficult to make a simple change this time, just repaint the tile sheet for the frame. Next time I would like to gradually increase what I can do while checking the areas where I can confirm the operation. Thanks again for your really helpful advice!

worn yew
#

Hello! 🙋
I'm trying to make a translation mod that would translate SV into Latvian.

I'm aware that if I want to translate it I need to add my own font to the game because SV doesnt recognize these letters "'āčēģīķļņšūž".

  • I made the ".ttf" file. (the font)
  • I used the BMfont to generate ".png" and ".fnt" files of my font.

But where do I make a "xnb" file? To use the font in SV as much as I know I need to repack it in "xnb" format. How?

valid folio
#

Hi, is this tutorial still valid? I want to make a recipe mod. If you know of a more updated tutorial I would really appreciate it.

https://stardewmodding.wiki.gg/wiki/Tutorial:_Adding_a_Recipe

Stardew Modding Wiki

It is very easy to add recipes to Stardew Valley using Json Assets. You can use Vanilla items or items you or another mod you have installed created with JA.
If you would like to make a video based on this tutorial, you are welcome to do so! Afterwards, please edit the page to add a link to your video for users who prefer to learn that way. :)
F...

brittle pasture
vernal crest
lucid iron
#

Would you be able to load fonts with content patcher?

#

To circumvent need for xnb, unless you really want this to work on vanilla game

worn yew
#

Maybe i did smth wrong with the code

lucid iron
#

hm looks like the game is looking for a png + a json

#

!unpack

ocean sailBOT
#

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

lucid iron
#

take a look at the various ru fonts in Content/Fonts

#

should be close to your needs

vernal crest
lucid iron
#

yea ig this json is just fnt but loaded into game

brittle ledge
patent lanceBOT
#

As you wish, tiakall (#6205127) (8h | <t:1724713596>)

lucid iron
#

can you post your full error log?

#

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

lucid iron
#

i also have a dumb idea which is to do your translations on the french locale for now, since the french font has all the chars you wanted

rancid temple
#

I probably should have left myself some notes about what else I needed to add...

worn yew
rancid temple
#

Oh right, the entire cooking recipe section is nothing

ocean sailBOT
#

Log Info: SMAPI 4.0.8 with SDV 1.6.8 build 24119 on Microsoft Windows 11 Home, with 25 C# mods and 23 content packs.
Suggested fixes: One or more mods are out of date, consider updating them

rancid temple
#

Remind me in 6 hours to follow up on the custom renovation decoration issue and the cooking recipe guide

patent lanceBOT
#

I'd rather boot myself on an unprotected windows XP install than deal with you but we can't all have what we want, can we? (#6205151) (6h | <t:1724707180>)

rancid temple
lucid iron
rancid temple
#

Uber cuts deep

lucid iron
#

oh i found it

#

can you also send your content.json

#

(why is your game installed to one drive...)

velvet narwhal
#

(......gog?....)

lucid iron
#

looking at guide vs your error, i think you need to make sure this field is correct

#

it prob should be

"FontFile": "Fonts/{{ModId}}/LatvianBOLD1"
#

matching the load action, which should be something like

#
{
    "Action": "Load",
    "Target": "Fonts/{{ModId}}/LatvianBOLD1",
    "FromFile": "assets/LatvianBOLD1.fnt"
},
#

once again please do not make xnb bolbonfire

#

@worn yew pls just send it here instead of dm bolbwawawa

#

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

lucid iron
#

oh you shouldn't use When in the Load

#
For Content Patcher packs, they must be added without When conditions (or only using immutable conditions like config or HasMod).
#

it might be that you simply offer the base mod

#

and some number of optional files with fonts that ppl go replace manually

#

for now please remove the When conds, ConfigSchema, and DynamicTokens

verbal narwhal
#

@brittle ledge I hope it is ok that I ping you here because I didnt want to post this in #making-mods-art - this is my manifest and my texture json as well as a screenshot of my current folder - does everything look correct to you?

#

I am especially unsure if I need to put [] around the ItemId reference?

velvet narwhal
verbal narwhal
#

ahh, thank you!!

lucid iron
#

oh wait

#

ID should be Id

lucid iron
#

prob not huge problem

#

also it's recommended that you do a load for the button texture too

#
{
  "Action": "Load",
  "Target": "Fonts/{{ModId}}/Button",
  "FromFile": "assets/Button.png",
},
#

then you would put

"ButtonTexture": "Fonts/{{ModId}}/Button",
#

doing this allows ui mods to resprite your button to match their looks

verbal narwhal
#

can someone help me why this is happening?

valid folio
brittle pasture
#

that link explains the meaning of the fileds in the crafting/cooking recipe

#

every field is saved to a single string, separated by slashes

verbal narwhal
valid folio
verbal narwhal
#

ok it still doesnt work q.q

velvet narwhal
valid folio
#

I understand the structure, where the ingredients are located, how to obtain the recipe but I don't know how or where to put the name of the item to create.

velvet narwhal
#

I'm on mobile so my replies will be slow SDVpufferclueless

lucid iron
valid folio
#

I know the ingredient ID

lucid iron
#

do you have an edit to Data/Object?

#

to add your cooked item

valid folio
lucid iron
#

ya

verbal narwhal
#

I got it to work :3

lucid iron
valid folio
# lucid iron ya

"LogName": "Caramel Sauce recipe",
"Action": "EditData",
"Target": "Data/CpokingRecipes",
"When": {
"HasCraftingRecipe": "Big Chest"
},
"Entries": {
"{{ModId}}_BigChest": "(BC)130 1 388 70 334 2/Home/BigChest/true/default/"

I don't know how to fill in the fields in the case of a cooking recipe, if I understood correctly... in "target" I put "cookingrecipes" but I don't know if it's correct.

velvet narwhal
#

(Cpoking)

lucid iron
#

hm you can't use big craftables in cooking

velvet narwhal
#

That'd just be crafting recipes, no?

#

Oh I misread this is for cooking. I'm unsure of the intention of having the big chest

lucid iron
#

i am second guessing myself actually, maybe you can KasumiDerp

#

entire big chest of caramel sauce...

velvet narwhal
#

I can't check because I left everything at home

valid folio
lucid iron
#

the structure is the same yep

valid folio
velvet narwhal
#

Iirc it's just several moving parts, load the texture, create the object, create the recipe, create some way for the player to get it

#

Wait I didn't link anything for you eyeshake

lucid iron
#
"Moss Soup": "Moss 20/1 10/MossSoup/s Foraging 3/"

it goes ingredients/<unused>/cooked item/unlock method

#

MossSoup is the ID of the "moss soup" item

valid folio
#

But I think I only managed to confuse you hahahahaha sorry, ignore the message where I put the example. I will complete the fields as I understood and I will provide you with the code as I think it should be.

lucid iron
#

corresponding to an entry in Data/Objects

#

so you need edit on Data/CookingRecipes as well as Data/Objects

#

i recommend doing the Data/Objects edit first, then you can go in game and try spawning your item with cjb item spawner

#

once the item looks right you can do the recipes

velvet narwhal
#

contemplates if I have my json item set up correctly

#

I probably don't, so it'll be chaos, if it's still a problem after my class I'll jump on a school computer and throw together a json example

valid folio
velvet narwhal
#

I'd follow chu's advice, get the object in game first and check with cjb cheats

valid folio
lucid iron
#

oh right remember to load your texture as well

velvet narwhal
#

I did say it in order SDVkrobusgiggle

velvet narwhal
#

Class beckons, I'll be suffering for the next 1 1/2 hours SDVpuffersob

valid folio
lucid iron
#

idk if there's a step by step guide for making object

#

but im psure that mod earlier would have done so

velvet narwhal
#

If you wanna parse my full json while I'm gone

rain verge
#

I keep seeing "Format": "2.3.0", in the Content Patcher documentation. Not sure what this is for. Should I just use those numbers?
edit: oh it's the most recent version of the mod. Nevermind sorry.

valid folio
# lucid iron but im psure that mod earlier would have done so

Yes, I'm going to look at how she made the object.json, I was using Orangeblossom's Chocolate Valley mod as an example but she has created so many things that I ended up getting dizzy, she told me to ask her my questions but she is usually very busy and I don't want to bother her so much, I'm going to see if I can find a mod that only adds a cooking recipe, so I don't get so confused. Then it's time to replicate.

lucid iron
#

and in the future, gives your mod needed rewrite should stuff change

valid folio
velvet narwhal
#

My load is a full spritesheet

valid folio
velvet narwhal
#

ill brek it down later unless chu can, I really disappear now eyeshake

lucid iron
#

im out of advice at this point it's sink or swim

lucid iron
#

believe in you AquaThumbsup

valid folio
valid folio
brittle ledge
lucid iron
verbal narwhal
#

the only thing I will have to test out is if I can animate it if the jukebox is activated but the alternative texture wiki says this only works for machines, and I have no idea if the mini-jukebox is considered a machine.. but I guess I will try it out sooner or later!

#

it is looking great!! in my humble opinion :D

brittle pasture
#

if it's a big craftable (aka machine) then it should be possible (going off AT'a wiki)

valid folio
verbal narwhal
#

but I have uploaded it already on nexus^^

#

thanks!!

valid folio
verbal narwhal
valid folio
#

At least I always used it that way.

brittle pasture
#

yes, in SDV a machine usually means big craftable that can process input and return output
AT wiki says it can animate machines that is not processing input so I think it means it can animate big craftables in general

brittle ledge
#

Not all BigCraftables are machines, but all machines are BigCraftables iirc

verbal narwhal
#

ah yes but the in- and output was the thing that threw me off

#

because it doesn't apply to the mini-jukebox

#

thank you so much selph!!

#

and tiakall and hayato!

calm nebula
#

Mini jukebox is probably not a machine

#

It's also probably hardcoded

verbal narwhal
#

ahh

#

I mean even without a spinning vinyl it is pretty to look at

#

at least I have this :D

valid folio
#

The values ​​of these parameters... how do I know what to put? Or is it the same for any cooking recipe?

Type": "Basic",
"Category": -7,
"Price": 500,
"Texture": "Mods/{{ModId}}/objects",
"SpriteIndex": 0,
"Edibility": 75,
"IsDrink": false

In "texture" I suppose it is the path of the png

#

Well, "price" the sales value

uncut viper
#

the texture field will be an asset name, not a path to the png. its wherever you did a Load action for your texture

#

the price is how much money the player will get if they put it in the shipping bin, and is also by default 1/2 the sale price from a store

ashen oak
#

Q: What happens to orphaned StardewValley.Object instances? E.g., if a mod postfixes a method that normally returns new Object(...) and overrides that return value, does the originally-created object just get GC'd or are there noticeable side effects?

velvet narwhal
#

oh god github lightmode is horrific

ashen oak
#

(Assume this method runs uncommonly and not like 1+ times per frame or something)

calm nebula
#

In general you can expect orphaned instances in c# to be eventually swept away

ashen oak
calm nebula
#

(It's a there tiered mark and sweep gc.)

ashen oak
calm nebula
#

You will know them because they implement Idisposable

#

Well, except farmer

#

(Grumbles)

ashen oak
#

Coolio, thx

#

Would rather just not create the object I'm tossing anyway but that way lies either a total replacement prefix patch or a transpile and I don't wanna do that

teal bridge
#

Just be careful about assets like Texture2D, don't dispose those unless you own them.

ashen oak
#

So I should just be able to ignore the original return value in this case and replace it with my own without much of a hiccup

velvet narwhal
valid folio
calm nebula
tough crater
#

Does anyone know anything about Alternate Dispositions? I've only heard of it in relation to MissCoriel's NPC Creator, but I literally can't find anything that explains what it is and how it works

velvet narwhal
#

Have not heard of that one

#

If you're talking about the new dispositions, #1277457201077813280 were always listening for npc help in that thread

tough crater
#

Maybe it's something that's exclusive to the creator's own mods? I have no idea 😅

rocky stag
#

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

rocky stag
brittle pasture
#

your Data/CookingRecipes entry is malformed, though I don't know if it matters with SC override
what's the error?

rancid temple
#

It probably does need to be correct or I think it won't add it to the recipes properly

brittle pasture
#

yeah good idea to make it an actual valid recipe regardless

rancid temple
merry rampart
#

Is it possible to add a custom NPC with their own build menu? Or do I need to use Robin or Wizard?

#

Or rather is it possible with CP or a framework mod?

latent mauve
#

I'm fairly certain you can assign a custom NPC as a Builder

#

per the wiki: The vanilla values are Robin and Wizard, but you can specify a different name if a C# mod opens a construction menu for them. Defaults to Robin. If set to null, it won't appear in any menu.

#

So you'd need C# to call the construction menu, from the sounds of it

merry rampart
#

Well, there goes that idea...

brittle pasture
#

a "shop dehardcoder" framework could be cool. I know there are people who wanted animal sellers other than Marnie

merry rampart
#

Well, i could just add the building to the wizard but you dont unlock the wizard build menu until later game which kinda defeats the purpose of what i want to do

last plume
#

can i make a mod that uses extra machine configs but automate compatible?

brittle pasture
#

EMC is already automate compatible wdym

lucid iron
#

hm it's almost decoded really

last plume
#

oh im working on the successor of raffadax cheese mod and i know he uses producer framework mod but i know thats not automate compatible

lucid iron
#

it's all in GameLocations.ShowConstructOptions(buildername)

finite ginkgo
#

Producer framework mod does have a automate integration optional mod

last plume
#

oki i will look into it thanks

merry rampart
#

i dont know shit about C# coding so... that's not an option

lucid iron
#

was there a framework that adds new tile actions?

rain verge
#

I'm trying to follow along with a SMAPI tutorial on the wiki. It says to do this to replace a game asset. But I'm getting an error that "Entry" has nothing to override.

internal sealed class ModEntry : Mod
{
    /// <inheritdoc/>
    public override void Entry(IModHelper helper)
    {
        helper.Events.Content.AssetRequested += this.OnAssetRequested;
    }

    /// <inheritdoc cref="IContentEvents.AssetRequested"/>
    /// <param name="sender">The event sender.</param>
    /// <param name="e">The event data.</param>
    private void OnAssetRequested(object sender, AssetRequestedEventArgs e)
    {
        if (e.Name.IsEquivalentTo("Portraits/Abigail"))
        {
            e.LoadFromModFile<Texture2D>("assets/abigail-portraits.png", AssetLoadPriority.Medium);
        }
    }
}
last plume
#

raffadax cheese mod broke on march 19th

brittle pasture
#

though it's still recommended you use CP machines if possible above PFM

lucid iron
#

wow fancy DokkanStare

last plume
scenic tinsel
#

i'll text there then

last plume
#

but can the successor of raffadax mod be done on cp and emc?

brittle pasture
#

yes

last plume
#

ok cuz it will need the milk and one or more cultures for example. I am putting advanced cheese and advanced goat cheese presses to make it easier

#

so ya

merry rampart
#

hmm... is it possible to warp via an option from a static npc?

like, talk to static npc, they ask if you want to go somewhere, and you press 'yes' to warp

brittle pasture
rain verge
teal bridge
# merry rampart i dont know shit about C# coding so... that's not an option

What are you trying to do exactly?

(I'm not sure that I, personally, can do it, but we were musing yesterday about how some of the artistic types seem reluctant to straight up ask for help with the code, like coding types are willing to ask for help with pixel art and such; if you're pretty far along in the execution and just need some code to glue it together, there's probably someone who will like the idea enough to be willing to chip in.)

#

(and yes there's a lot of maybes and probablys in there... since we don't know what the intended outcome is)

merry rampart
# teal bridge What are you trying to do exactly? (I'm not sure that I, personally, can do it,...

i want to have a custom buildable warp totem that can teleport the player to a custom map location. it makes sense for the wizard to build it, but i want it to be available to players earlier in the game. and for that i wanted to make a custom npc that would sell the building early game

the warp totem itself seems like something i can do with CP alone. but the build menu is another story entirely....

teal bridge
#

When you say totem, I take it you're referring to the permanent obelisk buildings and not tradable/craftable totems (consumables)?

merry rampart
#

right

#

also i could do a simple map edit, but then i'd run into compatibility issues with other mods and that's just one big headache

#

but now im wondering if this idea is an even bigger headache

teal bridge
#

Let me try to see what's going on with the wizard; I think constructibles might be different from regular shop data but I don't think they're all that insane unless you're doing a whole dialogue tree out of it (which is why Robin is so complex).

proud wyvern
#

(not that the mod currently works, i haven't updated it for 1.6)