#making-mods-general

1 messages · Page 469 of 1

next plaza
#

.q 6745

patent lanceBOT
#
#6745

"average modder commits 3 code crimes a year" factoid is actualy just statistical error. average person commits 0 code crimes per year. Code Crimes Casey Georg, who lives in a basement cave & commits over 100 each day, is an outlier adn should not have been counted

gentle rose
#

you actually emailed them SBVLmaoDog amazing

even with the “actual businesses” thing this policy makes no sense, especially since ljnks we share are often permanent regardless

hard fern
#

ljink

hard fern
#

wow i cant even spell the misspelling right

royal stump
pine elbow
#

AAANNNDDD
of course the stupid test Stone mill STILL Doesnt show up in the items menu

thorn sorrel
#

I'll take a look into both suggestions and see if I can make them work. Thank you~!

brittle pasture
brittle pasture
pine elbow
#

but what does that have to do with the stupid item not showing up at all?

brittle pasture
#

because you're editing Data/Machines which is the wrong target (look at your code again)

pine elbow
#

from the EXACT link I posted

#

unless you meant the link for the data

brittle pasture
pine elbow
#

Yeah

brittle pasture
#

change it to Data/BigCraftables

fervent horizon
#

how would I patch out an action that is on a map tile? Like SVE adds actions to the edges of the Hat Mouse House, and I want to get rid of them

gentle rose
#

also your image is loaded to modid/BigCraftables but your texture is set to Mods/modid/BigCraftables

urban patrol
fervent horizon
#

so like this { "Position": { "X": 30, "Y": 95 }, "Layer": "Buildings", "SetProperties": {} },

urban patrol
fervent horizon
#

ok, thanks for the help

urban patrol
#

np

fervent horizon
#

cool, I think I got it { "Position": { "X": 30, "Y": 95 }, "Layer": "Buildings", "SetProperties": {"Action":null} },

urban patrol
#

looks like that should work

#

then just repeat for each tile

#

i long for the day when MapTiles accepts areas instead of individual tiles

worldly wadi
#

Heyyyy so, I have a question. I’m planning to change parts of my custom map after cutscenes and missions. For example: After completing a specific delivery mission, an old house of my map will be restored. So, for that, should I use the “EditMap” with the “When” condition? Or is there any other specific code for that? Sorry if it's a silly question, I'm new to coding.

urban patrol
#

yep! there are plenty of tokens you can use with When, like HasFlag, HasSeenEvent, etc

worldly wadi
latent mauve
#

Otherwise the changes will take effect on the next day.

latent mauve
#

Schedule changes will potentially also require a day so that the pathing updates.

urban patrol
#

yep, but schedules are loaded at the end of the day, so you won't see changes until the next day after sleeping

latent mauve
#

Yes, that LOL

worldly wadi
#

Got it! Tysmmmm :D

latent mauve
#

Easiest way to work with that is to make the notification about the update mention "this will be repaired overnight"

#

Overnight repairs/renovations around town are common in vanilla too, so that shouldn't be unusual (see all the Junimo-related map changes from Community Center rewards, Willy's boat, etc.)

inner harbor
#

Why is Nexus so buggy when it comes to trying to do stuff - like move a Bug Report from the Comments and into the correct section?

#

(Also, why do folks insist on putting bug reports int eh comments section? Sigh)

brittle pasture
#

clearly you need to buy more premiums /lh

inner harbor
#

lol yeah I have free premium

thorn sorrel
#

Because we must complain and do it in the most obnoxious way until our voices are heard

#

Also too lazy to look for the 'bug report' tab

pine elbow
#

Good news the Damn Machine FINALLY SHOWS UP
Mediocre News the Sprites don't appear

brittle pasture
#

the target where you're loading the png into must match the texture in the BigCraftables data

pine elbow
brittle pasture
#

the Load BC Spritesheet Action must load into Mods/{{ModId}}/BigCraftables to match the texture data

latent mauve
#

Don't use the .png either in the Texture, your Texture is a 'game asset' which means it will be whatever your Load Target was, and does not use file extensions.

brittle pasture
#

(I noticed that you copied code from the machine tutorial on the modding wiki into your own code? in that case don't skip steps but follow them exactly)

#

(in this case you copied the BC code but not the texture loading code, opting to use your own existing texture load, and that's why they don't matchh

thorn sorrel
ocean sailBOT
#

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

brittle pasture
#

I don't see the code where you're loading the animal texture anywhere

#

did you perchance accidentally delete it?

royal stump
#

yeah, seems like Animals/melonrancher.SweetsFairies-Mint Fairy isn't loaded anywhere
the animal's texture field* is set and the produce data shouldn't be related, afaik

#

(I'm also not sure if targets work correctly with spaces in them, but admittedly I've never tried)

thorn sorrel
#

After I removed the Dynamic Tokens from the "DeluxeProduceItemIds" section, they came back. So its something that is breaking when using Dynamic Tokens in that section

sleek igloo
#

Hi everyone, I have some questions about custom animals and skins/alternate types SDVpufferthinkblob

brittle pasture
#

hmm invalid item ids shouldnt straight up break animal textures

#

unless they make the animal code invalid

sleek igloo
#

I was trying to add skins for animals so you could pick them in livestock bazaar, but then I ran into a problem with produce, where I couldn't figure out if it was possible to make different variants with different colored produce like brown chickens

brittle pasture
#

you can't make skins have different produce

#

you have to make them different animals

sleek igloo
#

I assumed so, so what's the difference between skins and alternate purchase types?

brittle pasture
#

and use AlternatePurchaseTypes where buying one animal has a chance to give a different animal ala vanilla chickens

#

skins are variations of the same animals

#

alt purchase types are multiple different animals occupying the same purchase slot

sleek igloo
#

ahhhh ok, I don't know why but I was having trouble wrapping my head around the difference

royal stump
#

as an example, there's a "white cow" and a "brown cow" as separate animal type entries; you can't buy "brown cow", but "white cow" has it as an alt purchase type, so you randomly get them

#

which allows entirely separate settings, vs skins just being skins

sleek igloo
#

and livestock bazaar lets you choose between them no?

#

at least that's what I remember, I haven't gotten far enough into a game to buy an animal in ages wfweiofh

royal stump
#

I'm not familiar, but yeah, it seems to say that on the nexus page

brittle pasture
#

yes

sleek igloo
#

so skins and alternate types both show up as choices there?

brittle pasture
#

yes

sleek igloo
#

awesome, thanks guys, I just needed that clarified SDVpufferheart

uncut viper
#

chu is very adamant about eliminating that particular rng SDVpuffersquee

sleek igloo
#

I don't mind so much the rng but I do want them to be available

brittle pasture
sleek igloo
#

under the same animal slot i mean

#

I wanted to make some templates for adding animal variations for personal use or updating at mods to variations in cp

brittle pasture
thorn sorrel
royal stump
#

SDVpufferthinkblob right, I guess switching to dynamic tokens was bad advice, sorry
I think you could use "Condition" in those fields instead, e.g.

{
  "ItemId": "{{Random: Cornucopia_Mint, Cornucopia_MintSeeds}}",
  "Condition": "{{HasMod: Cornucopia.MoreCrops}}"
}```
brittle pasture
#

yeah that should work

next plaza
#

oh hi @sleek igloo

#

Haven't seen you around again recently

thorn sorrel
sleek igloo
#

you know how I am, with my OCD lol

next plaza
#

My attention span makes me change projects (modding or otherwise) every day for the most part 🙃

#

The only recent project that has had a substantial amount of multiple-day work is the one in #1414326612215992446

sleek igloo
#

So I'm looking at Everia's dragons as an example for the fields, but I'm not sure which would translate into adding an alternate type to an existing animal

sleek igloo
#

but I getcha

lucid iron
#

Do u have Data/Animals.json unpacked from vanilla

brittle pasture
next plaza
#

I can't work on any "serious" long term projects until I can tame my ADHD

sleek igloo
#

Oh is it cp type format? I remember it being different way back

lucid iron
#

Also here is recent example

sleek igloo
sleek igloo
#

I still need to update the paddy mod to fix the center tile one of these days

brittle pasture
#

now it's natively supported so just unpack the data and copy paste the examples

#

[[Modding:Farm_animals]]

#

ful

#

[[Modding:Animal_data]]

sleek igloo
#

Thank you!

warm wagon
#

Hello!

#

Does anyone know person who made a Tea mod?

#

In meaning of NPC

lucid iron
#

I don't think the author is active here

brittle pasture
#

why do you ask

warm wagon
#

Wana ask a few questions

warm wagon
sleek igloo
#

What is "Target Field"? I'm seeing it in the skins from elle's animals

brittle pasture
#

it's a CP feature that allows targeted edits of nested fields without overwriting the entire parent object

sleek igloo
#

The one I'm seeing is "TargetField": [ "ALTERNATE LIVESTOCK", "Skins" ],

#

for adding a new type instead, do I need to edit that specifically or just exclude it

#

I have trouble with some of the language in the modding guide, sorry for being a pest ^^;;

brittle pasture
#

you need targetfield if this is not your own mod you're editing

#

(for Elle's the other mod being the vanilla game)

#

if you're already defining your animal entry from scratch you can just drop it directly into the entry

sleek igloo
#

Oh so, if I wanna add a Blue Duck that lays Blue Duck Eggs, I'd need targetfield too?

brittle pasture
#

you'd need TargetField to add the blue duck to the vanilla duck's alt purchase field

sleek igloo
#

From scratch being a custom animal I assume?

#

I imagine the "skins" entry wouldn't be needed in that case, so just "Alternate Livestock"?

brittle pasture
#

no, you don't use TargetField at all

sleek igloo
#

I'm confused hhh

brittle pasture
#

for now pretend it doesn't exist and define your animal from scratch

sleek igloo
#

even if it's just a blue duck?

brittle pasture
#

you don't need TargetField if:

  • there is no such thing as a blue duck
  • you want to add the blue duck and all associated data (produce, behaviors, skins, etc.)

you need TargetField if:

  • there is already a blue duck
  • you just want to add a skin to the blue duck without redefining everything else (produce, behaviors, etc.)
sleek igloo
#

ohhhhh

#

so if I wanted to add a blue chicken skin I'd need targetfield

#

Thank you!

thorn sorrel
brittle pasture
#

did you sleep and then test with fresh drops

thorn sorrel
#

Yup. Cleared out everything, went to sleep and they spawned once again.

brittle pasture
#

can you run patch export Data/FarmAnimals and post the file

uncut viper
#

that's not how you check contains on has mod

#

im on mobile so I'm nominating Selph to write the contains bit so I don't have to

royal stump
#

{{HasMod |contains=Mod.Name.Here}}

brittle pasture
#

jokes on you I'm also on my phone

uncut viper
#

selph too slow

royal stump
#

(defer to others re: tokens, I don't use them much SDVpufferdizzy but that should do it according to patch parse)

brittle pasture
#

(also hmm I assumed that format would work, but I only really used it in When)

uncut viper
#

tbf esca you did get peer reviewed it's just that the peer was dubious /lh

#

that format is for an input argument to a token that accepts input

#

which HasMod does not

brittle pasture
#

ahh I see it now

thorn sorrel
#

Thanks so much @brittle pasture @royal stump and @uncut viper !

#

Question: If I wanted to add in an additional Condition, like specific season, would that be possible?

brittle pasture
#

sure, you can have multiple conditions separated by commas

#

and it will be true if they are all true

#

{{HasMod |contains=Mod.Name.Here}}, SEASON Winter

#

[[Modding:Game_state_queries]]

thorn sorrel
#

Ok, thank you!!

sleek igloo
#

Is this correct or is there unnecessary/missing fields, hold on a second

#

I left the fields blank for space reasons

latent mauve
#

!json please use the JSON validator if your code snippets get super long 😄

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.

sleek igloo
#

oh thats better

#

thank you

#

I left some fields blank on purpose, I'm mostly just trying to make sure I have all the fields first

#

ignore the when field, I haven't finished the configschema ^^;;

#

the idea is for modders to highlight/replace the capitalized placeholders for quick setup

brittle pasture
#

your AlternatePurchaseTypes field is outside of the animal data block

latent mauve
#

There are quite a few curly braces that are in the wrong spot

sleek igloo
#

ok, let me fix that

latent mauve
#

You'll also need to make sure your "Entries": { } is properly closed before the "When"

sleek igloo
#

I always go through the brackets at the end, nw SDVpufferthumbsup

#

I mostly want to ensure everything else is correct, fields/positioning

uncut viper
#

well the brackets are a critical part of positioning

sleek igloo
#

true, but I check for matching brackets in the final check

#

that everything is properly closed I mean

latent mauve
#

Nice thing about the JSON validator is that you can click a brace and it'll put a square around both it and the one it thinks is closing it

sleek igloo
#

my editor has a similar function!

thorn sorrel
#

Anyone have a link to a guide on how to set up Custom NPC events? NVM, found the tutorial page on it, yaaaasss

sleek igloo
fervent horizon
#

so say I have an image.png and I patch that over an area in cursors, is it possible then for another mod to patch my image.png and it will end up showing the new image?

#

sorry if this is confusing

uncut viper
#

no. they just patch cursors in the same area with their own image

proven spindle
#

I don't think another mod could patch your image.png directly (at least not without some c# wizardry), but they could target that same area in cursors and give it a late priority to ensure it shows up over yours, if that's what you're asking

fervent horizon
#

👍

uncut viper
#

im not even sure a C# mod could do it without touching the actual file which i imagine is off-limits for any reasonable modder

obtuse wigeon
#

(a soft dependancy might be better than the "late" priority)

uncut viper
#

a soft dependency isnt foolproof

#

neither is a late priority, but its closer

#

its certainly easier though

#

(the dep that is)

obtuse wigeon
#

I thought the late priority was advised against? because if multiple mods patch over each other you'd end up with a gradually increasing priority?

uncut viper
#

well sure, but that also highlights why a dependency isnt foolproof. what if BSavage makes their patch a Late priority for other reasons?

fervent horizon
#

ok, new question, if I add the sprite to a tilesheet, then the other mods could just patch my tilesheet right?

uncut viper
#

what exactly do you mean by "add a sprite to a tilesheet"

proven spindle
#

Do you mean loading the asset? In that case yes

fervent horizon
#

Like put the image on the map in tiled, then they can patch my tilesheet

uncut viper
#

assuming you Load it they can EditImage your asset yeah

fervent horizon
#

cool, that would probably be the easiest

proven spindle
#

You can add an image to a tiled map straight from the png without loading it though. If you want to ensure others can edit your image, you'll need make sure you load it so that other mods have a location to target on their end

fervent horizon
#

I always feel like I am taking one step forward and then two steps back

uncut viper
#

what exactly are you patching in cursors? because by bypassing cursors you also miss out on recolour compat if relevant

fervent horizon
#

just the hatmouse

uncut viper
#

you should probably just patch cursors

fervent horizon
#

ok, thanks for the info

#

I think I have a grasp on it

proven spindle
#

Does anyone know if there's any modding resources on tailoring recipes? Can't find anything in the modding wiki besides a few brief mentions on the clothes pages. The Recipes page specifies that tailoring is separate but doesn't offer any links

uncut viper
#

i do not but looking at Data/TailoringRecipes it seems pretty straightforward

proven spindle
#

I'm looking for info like whether I make non clothing items in the sewing machine and stuff like that

#

Guess I'll just have to experiment lol

livid kite
uncut viper
#

i dont see anything hardcoding it

#

unless im misremembering what the sewing machine is

livid kite
#

The sewing machine is also called te tailor station in game, no?

uncut viper
#

it just opens a TailoringMenu which uses Data/TailoringRecipes

#

even in vanilla it makes an (O) Object in one case

livid kite
#

Hmmmm, I don't remember the object item that's made through the sewing machine. But iiirc isn't sleph making a tailoring framework mod?

proven spindle
#

Did a quick test. I successfully made a leek in the sewing machine

uncut viper
#

i dont recall any tailoring framework

proven spindle
#

So I guess it works :D

uncut viper
#

(the object it makes is the trimmed lucky purple shorts)

lucid iron
#

(selph's making a tailoring skill mod)

livid kite
#

I might be thinking of something else pondering

proven spindle
#

Also curious if other fields in the entry have other options (does one of the items have to be cloth? Does it require tags? Can randomization or other item query fields be used?), so I'll play around with it some more and add to the wiki while I'm at it

livid kite
uncut viper
pine elbow
lucid iron
#

the png doesn't matter much

#

as long as FromFile is the file u actually have

drowsy pewter
#

@lucid iron so an improved successor of bagi has been one of the holy grails for me for quite a while. To explain the issue: bagi has only ever worked on the specific vanilla artisan goods it was coded for, and cannot be expanded to more artisan goods including both vanilla and modded ones. (On top of that, it's also closed permissions and not being updated, ebagi has to be hosted off nexus, but thats another issue)

Matt took on this project back around 1.6 launch with Spritepatcher, and he ended up expanding the scope of the mod by a ton until it could basically handle conditional textures for literally anything. so a texture if a tree has something to drop, if an animal is milkable, etc. He did this using C# embedded into content packs, which I thought would make it harder for content pack modders to use, but that's how it was so extensive. But since it touches everything there were too many clashes with alternative textures, which was already touching everything.

In the end, I think that being able to provide custom artisan goods textures based on the inherited flavor AND/OR color would be ideal. So you could have a specific sprite drawn for Grape Wine, but also a catch-all wine sprite that works for any purple colored wine, if that wine's specific flavor is not covered.

I mentioned custom sprite based on object context tag, but I think what I mean is custom sprite based on the color data. Because each dye color tag on the machine input will produce a predetermined color hex on the output. So there would only be about 30 colors total to account for

#

While it would be usable if this was set in the item spawn field, it would be more ideal if other modders could make their own content packs for vanilla/mods without editing any item spawn entries. Partly so that the original author is not responsible for adding compat, and partly because the modders who tend to make retexture packs are usually not the most experienced with editing data

#

I know some people think the 1.6 colored artisan goods are already fine, i just think it's ugly lol

lucid iron
#

from a C# pov:

  • change Object sprite index is very easy way to make a particular instance draw something else, the actual changing of things can happen in a variety of places but probably just item query resolve and item create. persisting the changes can be troublesome but just gotta be careful about it
  • changing Object texture asset sucks i don't wanna think about it
#

i actually already do change sprite index for trinkets

brittle pasture
#

kid named skip prefix:

lucid iron
#

thats how i did different icons depending on the variant

calm nebula
#

Oh yeah sprite index is persistent

#

Morning, chue!

drowsy pewter
#

yeah thats kind of the issue, i mean i dont want to expand my artisan goods spritesheet by 20x vertically to add a bunch of variants for everything in the same sheet

calm nebula
#

It is reset in some places though

lucid iron
#

globally applying it is prob fine to if the data we accept is like a mapping of qualified item id -> sprite index

#

yea i gotta catch all those monS

#

i could also do the JA thing where the combined sheet is formed in C#

#

that i also have some spaget for already

calm nebula
#

Yeah, spritesheet merging is possible

#

Just keep the height

lucid iron
#

it is better if u do just, split up artisan goods all into own sheets though LilyDerp

dusk terrace
#

any reason to use Helper.Events.Display.MenuChanged to detect when a dialogue window is opened instead of patching the constructor, especially since I already have a bunch of other patches?

uncut viper
#

well, yeah. the reason is you don't have to make a harmony patch and you get whatever the previous menu state was too. and a menu can be constructed at any time, it doesn't mean for sure that it's now the active menu

#

but not needing to make a harmony patch is already a large benefit if you can accomplish the same things without it

dusk terrace
#

hmm good point... I could see some mods instantiating a dialogue box but not immediately use it for drawing

#

I think I could replace 3 of ddfc's 9 patches to use events instead lol

drowsy pewter
#

getting in some last minute sprite tweaks SDVpufferchickpopcorn

hard fern
#

Is that a blueberry pot pie

drowsy pewter
#

do you want it to be

hard fern
#

What other thing could be blue

drowsy pewter
#

ancient tuber, obviously

hard fern
#

Oh

#

Ok. :(

drowsy pewter
#

@brittle pasture

brittle pasture
#

most worthwhile use of unique only once per save item that cannot be obtained in any other way

drowsy pewter
#

it's probably delicious! or, you could probably convince someone that it's delicious, same thing

gaunt orbit
#

For the record! One of the reasons I chose it was that it was highly unlikely to be taken by anybody else so I could have the same name everywhere. It being hard to spell is probably a side effect of that, and also why I don't usually insist people call me by my full username.

Also is actually a reference to something, and not just alphabet soup

#

It is funny to me hearing people try to pronounce it though. Almost everyone messes up the order of the first three letters

drowsy pewter
#

i just always assumed it was the word for wren in some language i didnt know

uncut viper
#

ive always skipped saying the first t sound but i dont know why

#

lee-too-killa-kin

calm nebula
#

Is it the fish

#

The fish with arms

uncut viper
#

one other benefit to such a name is that your SEO when searching your username is incredible

gaunt orbit
uncut viper
#

i cant relate, believe it or not

drowsy pewter
#

i feel like i may have read it

gaunt orbit
#

Unfortunately there have been some sites I couldn't use it on simply because it was too long and didn't fit in the name character limit (???) and I had to shorten it to tlitoo

drowsy pewter
#

i have been pissed off before by sites requiring usernames start with letters

gaunt orbit
#

Xx6480xX doesn't do it for you, huh?

brave fable
#

backend systems clearly developed by very opinionated programmers 🙂‍↕️

#

you will be a valid variable name and you will like it

gaunt orbit
#

Microsoft be like: PascalCase or else gun

#

Apparently the official style guideline for c# is to use pascal case for constants?? Which in my opinion is pure evil

#

Anyways, I'm off to bed, I'll see you all tomorrow

wheat kelp
#

On a scale of newbie modder to coding your own expansion, how difficult would you say it would be to update older mods to work with the newer frameworks?

#

Like, would that maybe be a decent place to start to get used to writing code?

uncut viper
#

not enough information to answer the question with a specific answer

#

highly dependent on mod and framework

#

likely not on the level of coding a whole expansion but possibly so

wheat kelp
#

Lol

I've never written code before. Thinking about updating some of the old furniture framework mods to work on 1.6 and the current FF version

Same with mods that need to be updated to work on newer content Patcher or AT versions

next plaza
#

Anyways, the real reason I opened this channel

uncut viper
#

mods should not need to be updated to work with Content Patcher as it applies its own migrations

next plaza
uncut viper
#

but the parts of the game they interact with may or may not exist in the same forms

next plaza
#

(It's a bit sad you can't wear them, but I 10000% understand why)

calm nebula
#

To do what?

#

I'm still celebrating the ide

next plaza
#

To rejoin us

#

(even if it's just playing the game)

wheat kelp
next plaza
#

(heresy in these parts, I know)

calm nebula
#

I just got off work

next plaza
calm nebula
#

I have work tomorrow

next plaza
#

But for personal use you could (but also it'd be a ton of work for that mod)

#

But also, if you're fine having JA installed, the old JA versions should be fine

calm nebula
#

I'm god awful tired

wheat kelp
#

Ahh okay PPJA higher difficulty tier

next plaza
#

DGA has certain features which no up to date mod has, to this day

wheat kelp
#

This isn't necessarily for me to play, this is for me to get experience with writing code

drowsy pewter
#

ppja isnt necessarily difficult its just got a lot of items

next plaza
#

Some of the features I folded into SpaceCore/JA

wheat kelp
#

😅

next plaza
#

But a few, definitely not

uncut viper
#

it will likely be much better experience to start from scratch on your own and building upon what you make as you learn more

next plaza
drowsy pewter
#

I still get bug reports from people who are playing with ppja and think the items are from cornucopia SDVpetcatangy

uncut viper
#

if you try and jump off of another mod, not only do you still have to learn how to code anyway, but you then also need to learn their codebase

wheat kelp
next plaza
#

I wrote DGA to work around no string item IDs

#

We have string item IDs now, and it wasn't a super frequently used mod

#

So I had negative motivation to update it

wheat kelp
#

As far as first coding project

uncut viper
#

i would say so, yes

wheat kelp
#

Aight

uncut viper
#

not in the least because motivation is a good factor to have in learning

next plaza
uncut viper
#

and working on something you want to make real is better motivation than working in Random Mod #46

drowsy pewter
#

I mean like if you're planning with the end goal to make an expansion mod, learning how to use furniture framework is not directly useful

wheat kelp
#

I think I'll start with drawing assets tonight, and start digging into mod writing walkthroughs tomorrow

next plaza
uncut viper
#

like said, you will need to learn C# anyway. there's no shortcut for that. you might as well learn C# while making your thing.

wheat kelp
next plaza
wheat kelp
#

Maybe I'm just looking for a shortcut, and there are no shortcuts?

TBH, I find it very intimidating.

next plaza
#

There are definitely expansion mods without c#

vernal crest
#

I agree with Button that it's better to start from scratch. I find it really easy to convert old mods because I already am comfortable making new ones so I can easily see what I need to do with the old ones to update them.

uncut viper
#

well the many uses of the words "writing code"

wheat kelp
#

With my current medication combination, my brain is a bit fuzzy and I'm not very confident on something as complex as C#

uncut viper
#

then even less reason to learn from other mods as the basics can be picked up in a day if need be

wheat kelp
#

The Dark Brotherhood mod I have planned is just like a teeny tiny quest add-on, not a full expansion. A couple of village interactions, some letters in the mail. I don't think I'll even put in a new NPC.

next plaza
#

Modding nowadays is pretty different from modding in older versions, so yeah. Starting with converting - which is fine if that's where the motivation is - is harder because you kinda need to learn two systems at the same time (depending on how old it is) (and also not get wires crossed and confusing them)

next plaza
wheat kelp
#

I have practice editing manifests and editing content.jason to remove or replace things I want in existing mods, so I'm hoping that writing one from scratch won't be too hard

uncut viper
#

using mods as examples of doing things you need to do, sure, but like 6480 said theres not much point in learning FF if you dont need FF

next plaza
#

I'm willing to bet that json syntax stuff is one of the most common problems people ask about on this server

vernal crest
# wheat kelp Maybe I'm just looking for a shortcut, and there are no shortcuts? TBH, I find...

IMO the people who generally are successful with modmaking are the ones who appreciate modmaking as an experience rather than as something to be suffered through or shortcutted through to achieve the end point of having a mod. There are no shortcuts that don't cause extreme pain (take for example all the people who decide to make ChatGPT "make a mod" and then have surprised Pikachu faces when it doesn't work).

uncut viper
#

and i might be lowballing it

next plaza
next plaza
uncut viper
#

alas such stats are impossible to safely collect unless the junimos wanna let someone add their own bot to the server that collates years of messages,

wheat kelp
#

I think it's just intimidation. Maybe it's a confidence thing.

(I'll just take 2 days off my psych meds and then I'll think I'm invincible and it'll be no problem 🤣🤣)

next plaza
#

Like, do you think every solo indie dev enjoys every aspect of making a game? Art, music, code, design, writing, marketing, etc. etc. etc.

uncut viper
#

i dont think thats an equivalent analogy to what Aba said

vernal crest
#

I didn't say we enjoy every aspect though lol

wheat kelp
#

For some reason I really enjoy troubleshooting, and I really enjoy when I change someone else's content.json and it works properly

next plaza
next plaza
next plaza
#

Like, you don't have to enjoy to process to want to make something

uncut viper
#

appreciate =/= enjoy, either

next plaza
#

I agree, enjoy was probably the wrong word

wheat kelp
#

I get a really good, I guess "high" from making something work properly 😅

next plaza
#

But I imagine there are plenty of devs would directly export their imagination into the final product if they could do that instead of the process of making something

#

I would do that for basically everything but the coding

#

(and even then, some parts of coding aren't enjoyable after a substantial amount of time doing it)

uncut viper
#

but they cant do that, though, is the point. because they cant do that they have to have an appreciation for the whole process

vernal crest
#

I just see a lot of the people who come in going "I want mod X to exist but I don't want to have to learn anything or do any work to achieve that" disappearing pretty soon after

calm nebula
#

Claude please make me a video game

uncut viper
#

or if not "have to" at least "it usually ends up better if they do"

next plaza
vernal crest
#

(Not to say that's what you're doing, SkaryPie!)

wheat kelp
#

I would say a tolerance for the whole process, and the will to see their dream come to fruition at least

uncut viper
#

"better" not meaning the final product but in general when accounting for things like, say, mental health lol

wheat kelp
#

I see a lot of you mod makers hating certain aspects, but you guys are so proud. Once you get the final thing done, it's so heartwarming

calm nebula
#

Why are half the channels suddenly gone on the app

next plaza
#

Like, if you think about it in the context of a pre-LLM world, I don't mean flaky hallucinations or stuff. I mean like I can imagine it in my brain and it will pop out exactly like that, without the process of manually getting it out of the brain

wheat kelp
#

Cuz you got to take into account the number of mod makers who outsource things like sprites and music lol

uncut viper
#

i appreciate all the work that goes into making a content patcher edit with a token functional but im sure as hell happy to skip re-implementing that all myself

next plaza
#

Hmm, guess I'm just thinking about this in a different way than y'all mean, then

calm nebula
vernal crest
#

I would be surprised if anyone who is a regular modmaker here said that if they could avoid doing all of the work of modmaking they would. Why even participate in a hobby if you don't want to do any part of it?

uncut viper
#

the beauty of having a word with like 5 definitions minimum

next plaza
#

limited by the linguistics of my time, once again

hard fern
calm nebula
#

Plenty of people get better artists to do the art

wheat kelp
calm nebula
vernal crest
next plaza
calm nebula
#

Like, planning out memory layouts

#

Running benchmarks

uncut viper
next plaza
#

But I guess if I followed that to its extreme, people wouldn't do anything but C# mods, and never reuse in game art (even partially)

calm nebula
#

Getting way too deep into processors

next plaza
calm nebula
#

(Which, amusingly, you can tell because AoC i still want to do.)

next plaza
#

Like, I'm literally only doing stardew 3d/VR because I can't find a VR stardew-like, and making my own would be soooooo much more work 😛

vernal crest
wheat kelp
#

Yeah, I just want to say hey send this letter at this time after this thing happens, activate this asset at X time and trigger a response from the NPC

devout otter
uncut viper
#

i think there may have been some unintentional conflating Aba's point with saying that you can only be successful if you appreciate every step or that only people who appreciate every step make mods

#

all Aba said is that generally people who do appreciate every step are more successful in learning how to make mods

#

which I think is true

calm nebula
#

Nah, plenty of low effort mods are successful

next plaza
calm nebula
#

I used to joke that the less effort I put into a mod the more successful it was lol

#

(Thankfully I only ever cared about player #1)

lucid iron
#

@drowsy pewter

vernal crest
next plaza
uncut viper
#

hi chu

calm nebula
#

Congratulations!

#

Anyeays

#

Discord client glitch for anyone else?

#

I canr see any other channel in this server

lucid iron
#

well hm obsfucate wrong word

#

hide it by doing it automatically Dokkan

drowsy pewter
lucid iron
#

dis mod

wheat kelp
#

"success" to me with regards to mod making pretty much just means finishing it, uploading it, having it work properly, and having others enjoy it. Even if it's like three people 🤷🏻‍♀️

lucid iron
#

yea idk it was this or i name another mod <blah> variety

calm nebula
#

Lol

#

Why not?

#

Artisan Good Variety

uncut viper
#

importantly though aba wasnt talking about the success of the mod itself. just the success at making the mod

lucid iron
#

idk what goes in blah

calm nebula
#

Squad

lucid iron
#

i think the way i implemented this will work on big craftables...

next plaza
lucid iron
#

keg variety

next plaza
drowsy pewter
#

hmm so you need to change the texture of the original object as well? what if two people want to make different context packs to add icons for different sets of modded inputs? (eg one person make a cornucopia juice pack and someone else makes a wag juice pack)

lucid iron
#

im lazy

lucid iron
#

the data will look like this post transformations

#

i didnt make the transformations yet

uncut viper
#

im honestly quite surprised at just how easily chu was nerdsniped

drowsy pewter
#

ouhhh cool

uncut viper
#

i knew it would be easy but this easy? /lh

next plaza
#

Did this idea get mentioned today???

drowsy pewter
#

ask chu next time i need a difficult framework mod done, got it

lucid iron
#

there is only slander in this seaver

next plaza
#

When I saw it I assumed chu and 6480 had talked about it before

next plaza
uncut viper
#

not even 4 hours ago

lucid iron
#

no i just made it hence the lame name

#

but it's like, i did it b4 i know it'll work

drowsy pewter
uncut viper
#

less so if you count how long before 6480 wrote up a more detailed request after the initial in-passing proposal

next plaza
lucid iron
#

the data transform part is gonna take 10x the amount of time than change a sprite index blobcatgooglyblep

drowsy pewter
#

hehe

lucid iron
#

next week chu problem

next plaza
#

What's this about data transformation?

#

Is it transforming casey's active state data from awake to sleeping?

lucid iron
#

well casey rmbr how u generated spritesheets for JA

#

i gotta do that

next plaza
#

I mean when you mentioned it earlier I was l;ike "huh, JA does that?". I think it might've been PRed by Elizabeth

#

Possibly

lucid iron
#

no like, back when everthing was int id

#

didnt u have to make a big ass object sprite sheet

next plaza
#

But the 1.6 update was during the depression arc prelude, so...

lucid iron
#

thats what i understood anyways

next plaza
lucid iron
#

yea while i dont plan to patch onto vanilla i will need to do basically that Dokkan

next plaza
#

And did code crimes to make the game think the spritesheet was longer than 4096 even though MG wasn't allowing that

lucid iron
#

but i also have like

#

reusable code for that

next plaza
#

(I didn't start with that, but JA's existance exacerbated people who like way too many items)

lucid iron
#

so its mostly just sitting down and making all the decisions

next plaza
#

(Seriously, people had several thousands of new items even in the JA era)

#

(I can't recall if it ever reached 10k or not)

uncut viper
drowsy pewter
#

they shuffled too close to the sun

lucid mulch
#

I hit 8k

#

With the rafs collection thingy

next plaza
#

Fun fact: when JA first came out, it didn't reuse item IDs when mods were removed/added/moved around

next plaza
#

One of the reasons that got added was to avoid crossing the texture size limit (which, as mentioned, happened eventually anyways)

lucid iron
#

also i am still taking name suggestions

lucid mulch
#

And still have some trauma from it and so don't install crop or other item mods anymore unless I have a good reason to

lucid iron
#

how many items do u have in ur current 1.6 game?

next plaza
uncut viper
#

Dynamic Item Sprites Completely Optimized

lucid iron
#

where is the completely and optimized part

uncut viper
#

hopefully in your codebase

next plaza
#

absolute. chaos. incarnate.

lucid mulch
#

Though during that raf era did add features to lookup anything to make it less extreme to let you hide anything you don't own so the 7995 items I don't have a copy of didn't need to be in the lists rendered every frame

calm nebula
#

I really wish more people would stop making every damn flavor of an item it's own individual itsm

#

Anyways

#

Actually

#

You know what

lucid iron
#

well i mean hopefully this help with that

lucid mulch
#

during rafs era there werent good options to doit

calm nebula
#

In the two years since I lasted played this game people have and I just haven't heard of it

lucid mulch
#

but also raf also was insane enough to have those different flavors also have different gift tastes

#

which you cant do for flavored variants

calm nebula
#

Canr you do that with context tags

lucid iron
#

u cant have AND yet right

calm nebula
#

What if the machine mod can apply specific context tafs

#

Right.

#

Context tag not persistent

next plaza
calm nebula
#

Anyways ahhhhhhhh

next plaza
#

.choose go to bed, don't

lucid mulch
#

I did consider refactoring rafs to make it all flavors, but didnt have a data driven solution for its gift situation

patent lanceBOT
#

Choose result: go to bed

next plaza
#

Thank you

calm nebula
#

I'm going to bed

next plaza
#

was gonna do .choose ignore uber, don't if uber said no - and keep doing so until uber said yes

lucid mulch
#

if you only want one answer, why even ask the question

next plaza
#

comedy

#

It saying yes immediately ruined the joke

lucid mulch
#

.choose one option

patent lanceBOT
#

Choose result: one option

lucid iron
#

Dynamic Item Sprites Colorized and Organized

next plaza
#

.choose

patent lanceBOT
#

none of the above.

lucid iron
#

is not doing any coloring tho

tiny zealot
elder kite
#

What is the name of the hill top farm in the game files?

elder kite
#

Cheers

calm nebula
#

How does it interact with color masks

next plaza
#

But in this case, it was literally just because I wanted to do

#

.choose go to bed, don't

patent lanceBOT
#

Choose result: go to bed

lucid iron
#

u have to leave the mask blank if you don't want it

next plaza
#

dang it you ruined the joke again uber

lucid iron
#

so 0 2 4 6

#

another thing i can perhaps automate ofc

next plaza
#

casey: ".choose go to bed, don't"
uber: "don't"
casey: ".choose ignore uber, don't"
uber: "don't"
casey: ".choose ignore uber, don't"
uber: "don't"
casey: ".choose ignore uber, don't"
uber: "ignore uber"
casey: "Thanks uber, good night everyone"

#

actually logging off now

brittle pasture
#

I however don't fancy doing all the extra art for now

next plaza
#

Wait is that your mod

brittle pasture
#

and also I don't know how to get the extra colors to show up etc.

#

yeup

next plaza
#

Nice

#

/me stalks the profile to see the other mods

drowsy pewter
#

no, that's a random person on nexus that selph's been stealing the credit for since zombifier isnt on discord

brittle pasture
#

dang you got me

next plaza
#

Oh EMC is yours? I struggle to associate all these new fangled frameworks with their author names

brittle pasture
#

no it's zombifier's

lucid mulch
#

who knows who made SinZational Speedy Solutions, could be anyone

drowsy pewter
#

finally you admit it

next plaza
#

“I’ve had this nick for a while”
Well yeah, you’ve been playing the long game, haven’t you

drowsy pewter
#

wait, is it just me or did uber tell someone to go to bed really recently?

lucid mulch
#

fun fact, I had SinZ originally from garena/wc3 stuff, and then being a stupid kid griefed minecraft classic servers, got banned, made S1NZ and used that handle for a few years and eventually decided to go back to SinZ and got a mojang staff to migrate the paid status over

next plaza
#

(I was waiting for someone to ask 😛 )

hard fern
#

SDVpufferflat modding is hard. i need to make so many gemstones.. but since im doing it by alphabetical order, if i commit to finishing one letter a day i can finish in a maximum of 13 days (give or take bc some letters dont have anything, oops)

wheat kelp
#

For the Dark Brotherhood mail, should I use a regular handprint, or should I do like a roundish blob to mimic the NPC sprite hands?

#

Maybe I'll do eight fingers and make Alex the questgiver 🤣

hard fern
narrow owl
#

gl

strange dew
#

is there a way to include two 'Back' layers in Tiled?

#

everytime i set it like this, Back2 doesn't show up in game

indigo yoke
#

also yay a new skill, not done by meeeeee

proven spindle
#

Back2 should be above Back

indigo yoke
#

so excited

strange dew
proven spindle
#

Try it and verify it's the issue

strange dew
#

that worked, tysm ❤️

wheat kelp
#

Heya! Trying to use stardew xnb hack, but Windows won't allow it to open because it thinks it's malicious.

Does anybody know how to make Windows 10 allow the program?

#

I know it's not exactly a stardew specific, but any help is appreciated 😭

vernal crest
wheat kelp
indigo yoke
#

asking here just to see if I can save some time digging through dnspy:
Where would the player's death location be controlled? Like if they hit 0 health on a map, where would I find the location that they end up in?

mortal hatch
#

what could be the reason i get this error for my mod?
[Content Patcher] Ignored Tool Variants > config.json > config.Skin Sets.name: no such field supported by this content pack.

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.

mortal hatch
#

i am comparing my mod with anither one that does the same and see no difference

hard fern
#

it does kinda look like you just yanked the i18n? 🤔

mortal hatch
#

i18n? whats that?

hard fern
#

!i18n

ocean sailBOT
#
Creating Translation Capability

So you'd like to stop writing all of \"your strings straight in your content.json?\" and/or you'd like the capability to see all of your strings across all of your .jsons?
Introducing i18n!

  • How to make your mod compatible with other languages: stardewmodding.wiki.gg

  • The file where you can put all of your strings is called default.json, and it sits in a folder at the same level of your assets, named "i18n".

  • If you're converting from an older version of the game, there's a converter for ease-of-access.

Not to be confused with {{DynamicTokens}} since these require the specific {{i18n:<KEY>}} modifier

mortal hatch
#

rly repalce needs to be uppercase?

#

but the other mods i am using as reference dotn have that and work

mortal hatch
#

the site schows that
"PatchMode": "replace",
the R should be uppercase

#

but the others mdos have it lowercase and still works

obtuse wigeon
#

Also the Format field is very out of date (this probably isnt the cause of the issue, but it can lead to some features not working or odd behaviour you might not expect to see)

#

When making a mod, it's best to use the lastest version (it will say in the JSON validator what the latest version is if it's not up to date)

mortal hatch
#

i already see i got some wrong namings

vernal crest
mortal hatch
#

now i got that when i have this further unused value, as default this apeprs:

[Content Patcher] Ignored Tool Variants > EditImage TileSheets/tools #33: the When field is invalid: invalid Skin Sets condition: invalid values (node); expected one of none, alloy, bar, diamond, mystic, ore, qi, star, white.

#

"AllowValues": "none, alloy, bar, diamond, mystic, ore, qi, star, white",
"Default": "none",

vernal crest
mortal hatch
#

and i misread something again...

obtuse wigeon
#

You have this in your code:

    {
      "Action": "EditImage",
      "Priority": "Late",
      "Target": "TileSheets/tools",
      "FromFile": "assets/node_tools.png",
      "PatchMode": "replace",
      "When": {
        "Skin Sets": "node",
        "Skin Override": true
      }
    },

in the "When" condition "node" hasn't been added as a config option, you'd have to add it along side the other things in the "AllowValues" field to get it to recognise them

#

(Lines 942 and below)

hard fern
#

wait. did you misspell "none"

#

@mortal hatch

hard fern
#

but the error is because there's no config for "node"

obtuse wigeon
#

I think "node" is intentional, theres may patches with "node" both in the "FromFile" and "Skin set" fields, along with it being in a comment

hard fern
#

🤔 hm

obtuse wigeon
#

although that could just be a find and replace error good point

mortal hatch
#

the names come from where i got the colors

#

i nhtis case the iridium ore node

hard fern
#

ah. hm so then you just forgot to put it in your list of allowedvalues

mortal hatch
#

who likes Qi themed tools? xD

hard fern
#

looks cool

mortal hatch
#

the bar ore and ore ndoe is jsut missing

#

cause i realised how inconsistend the coloring between iridium ore, bar and tools is

#

iridium axe and pickaxe use slightly different colors

hard fern
#

Oh man the color inconsistencies make me so mad XD

mortal hatch
#

so my mod has tools colored after the ore nodes, the bars and the vanilla tools

#

and sprinklers

vernal crest
#

That's neat

mortal hatch
#

also weird, nobody rly done that before, a mdo that allows multipel reskins for tools

#

a collection of reskins

vernal crest
#

Would you like to be shown how to write the patches so you only need one for each part you have to change instead of one for each colour?

mortal hatch
#

wdym? the config.json?

vernal crest
mortal hatch
#

its jsut a true false option

vernal crest
obtuse wigeon
#

Oop Spoilers

vernal crest
# mortal hatch wdym? the config.json?

No, instead of having one patch for node_tools.png and one for mystic_tools.png and so on, you just have one with {{Skin}}_tools.png that changes depending on which config option the player has chosen

#

In fact, I'll show you what I've written for Bog's tool update

mortal hatch
#

if that woudl reduce the content.json to below 900 liens, it woudl be great

obtuse wigeon
#

I think it would probably reduce it to 500 at least

vernal crest
#

Instead of having three patches, one for each iridium colour, I have one patch that uses the iridium colour config token inside the FromFile field

#

It also means that if we ever update it to add more colour options, I just have to add those to the ConfigSchema without writing any new patches.

vernal crest
mortal hatch
#

but what if its "none", doesnt it throw a error?

obtuse wigeon
mortal hatch
#

imo there should always be the option for the user to disable the mod recolering without needing to deactive the mod

vernal crest
#

We don't have a none and I'm not sure I'm following why yours does - oh because you want to be able to disable individual tools. You could add that as a When condition to the patch so the patch only applies if the config is not set to "none"

mortal hatch
#

yea

#

2 reasons why i have none option

vernal crest
#

I am of the opinion that unless you're a mod maker testing mods, having a config to disable an entire mod is overkill

obtuse wigeon
#

would an Include with a checkbox with none possibly be a better option do you think Aba?

mortal hatch
#

its jsut partically disabling it

#

you like the scythe skin? ok, then only use that and use vanilla for rest if you want

obtuse wigeon
drowsy pewter
vernal crest
vernal crest
vernal crest
mortal hatch
#

when the sprite looks good, but game says NO

vernal crest
obtuse wigeon
mortal hatch
#

its difficult to see a grid in the stardew files

vernal crest
obtuse wigeon
#

I think my modlist was slightly over at 600 before I had issues with my drive XD

vernal crest
#

And you're saying you want your GMCM to have literally 600 entries? Far out that's a lot to scroll through

#

It'd take longer to scroll through GMCM than to close the game, disable the mod, and hop back in!

#

(Hyperbole. Just. xD)

obtuse wigeon
#

GMCM has a scroll bar! and it's alphabetical so it's easy to find the mod I'm looking for XD, plus I usually have a mod that lengthens the day a decent amount and I don't want to reset the day or miss a decent chunk of it XD

mortal hatch
#

xD

obtuse wigeon
#

I do like that colour scheme

vernal crest
#

I change my farmer's outfit once per season, if I remember

obtuse wigeon
#

I also play with the mod that adds many different kinds of weather so I change my outfits atleast 4 times a week XD

hard fern
#

And ofc i never remember my own wedding or the flower dance

mortal hatch
vernal crest
mortal hatch
#

but it doesnt work...

#

the override one works, but the single reskins, not

vernal crest
mortal hatch
#

jsut these expected ones
[Content Patcher] Can't apply image patch "Tool Variants > EditImage TileSheets/weapons #2" to TileSheets/weapons: the FromFile file 'assets\none_scythe.png' doesn't exist.

#

for the all tool replacement i set a override value, true/false and if its false the others should apply, but dont

#

above works but below dont

drowsy pewter
#

"When": { "Skin Sets|contains=none": false }

#

add that skin sets line inside your existing when conditions

#

it makes sure that the value is not none before applying thr patch

mortal hatch
#

i emant it opposite, the entire set is only applied when override is true, otherwise the single ones are suppose to be applied

drowsy pewter
#

idk theres too much context missing for me to help with that

vernal crest
#

So that if people choose none for the skin, nothing gets applied

mortal hatch
#

so override is false and set is none?

vernal crest
#

Both of them need the "Skin Sets|contains=none": false check, so it doesn't try to apply either of them if the player has chosen no skin

mortal hatch
#

"When": { "Skin Sets|contains=none": false , "Set Override" : true } ?

drowsy pewter
#

yeah thats the format

mortal hatch
#

it still applies the entire set and ignores the false override value

vernal crest
#

Well, with what you have there you're telling it to apply the skin if set override is true and if it's false

mortal hatch
#

yes

vernal crest
#

So how do you choose whether to set it individually?

mortal hatch
#

with this override true false

vernal crest
#

You haven't actually used your "Scythe Skin" config option

mortal hatch
#

there is a skin thats not none chosen

#

but it doesnt apply despie override being false atm

vernal crest
#

So you've got set override as false and your skin set is, IDK, diamond, and it's showing the scythe as vanilla?

mortal hatch
#

i set override false and the sc<the to diamond, BUT only the skinset option applies, whatever it is and the single ones dont work

vernal crest
#

Sorry I am trying to debug my own mod at the same time so I am moving slowly

drowsy pewter
#

we dont see the code for the single replacements youre talking about

vernal crest
#

Yes the reason your skin set is the one that applies is because that's the token that you're using

mortal hatch
drowsy pewter
#

theyre identical

vernal crest
#

You need to change that token to be the scythe specific one for the set override false option

mortal hatch
#

this replaces all tools

#

this replaces a single tool

#

but first always applies, regardless of override being true or false

drowsy pewter
#

Okay but they use the same skin set token do you realize that

mortal hatch
#

wait

#

damit

vernal crest
#

Yes that's what I was trying to say

#

You are using the wrong token in the FromFile for the second patch

mortal hatch
#

now it works and i can play the game

#

modding👍

#

no wait i cant, theres liek 5 mods who need update and i gotta make myself soemthing to eat...

merry river
#

Using the appearances system, if I wanted my NPC to wear a specfic outfit in the bath house, would I add
"Condition": "Location_Name Target BathHouse_Pool" ?

vernal crest
#

That should be "Here" instead of "Target" I think but Target might work

merry river
vernal crest
#

Oh you are following a tutorial? Then go with that

merry river
#

Yeah, I just wasn't sure whether I understood correctly or not haha

vernal crest
#

Looks good to me

woeful lintel
hallow prism
#

finally got the logic right (after i remembered i needed to make a trigger repeatable AND that making it repeatable after it already triggered would need me to remove manually the trigger once)

merry river
#

Oh I have been playing VMV so much recently.........

woeful lintel
#

Oh god, I started looking into DGA and Custom Furniture to see if it was possible to make converters to FF and it is so doable but I have so not enough time to do that...

merry river
#

another question because I can't seem to figure it out: how would i add dialogue lines for festivals? i suppose i have to make a separate json and include the dialogue somehow?

#

nevermind I think i just found a template that explains it SDVpufferthumbsup

vernal crest
merry river
#

Yes, I just found Tia's template for that. I think I know what to do from there on out :)

vernal crest
#

Okay I tell a lie I think that you either have to have a blank .json or separate jsons for your dialogue and schedule (the blank is preferable)

woeful lintel
#

!converters

upbeat zephyr
#

copy pasting so many dialogue lines i think I may go insane

#

if im making dialogue GMNT compatible and the original dialogue has 2 different versions of what is said (Exact same thing but twice, for male vs female) do i have to do anything extra or do i just include the one line of it

upbeat zephyr
#

what did i do :(

woeful lintel
#

you have an extra quotation mark on line 141

#

Or a missing comma/closing bracket on the previous line

#

I hope your text editor has line numbers

upbeat zephyr
#

i am not seeing my mistake...

upbeat zephyr
woeful lintel
#

yup, missing comma at the end of the target line

upbeat zephyr
#

oh am i ?

#

oh god i did that for EVERY ONE OF THEM NOOOO

woeful lintel
#

you can probably search and replace that

#

you should fix your indentation btw, that will also prevent errors

upbeat zephyr
#

i made the original indentation errors in regular notepad, not...100 percent sure how to fix them

#

i say this every time but im very new to this type of coding so i am a baby

woeful lintel
#

indentation is just whitespace at the start of lines, if np++ is well made, you can just select the lines that have bad indentation and hit tab to add indent and shift+tab to remove indent

upbeat zephyr
#

i can do for html/css lol

#

omg so it is like html/css then

#

WOW

#

that worked so well

#

thank you !

woeful lintel
#

I mean, technically yes, but it's common to every text file...

upbeat zephyr
#

we will pretend like i knew that

#

avgfhsvgfhashvga

#

thank you though

woeful lintel
#

no problem!

upbeat zephyr
#

i will now try again

obtuse wigeon
#

(vscode also has a feature like this incase anyone else sees this and uses vscode over notepad++, VSCode also has "Format Document" in the command palette to do it across the entire document and not just the highlighted area)

upbeat zephyr
#

oh it....

#

hm

#

am i not supposed to put the [...]

#

does that mess it up ?

#

BUT

#

THE TITLE IS WORKING SO WE SOLVED SOMETHING

#

my body is a machine that turns 1 problem into 1 solved problem and 10 new problems

#

do i have to include all of the text...

obtuse wigeon
#

the [...] inside quotes in a some guides usually means it's optional and not required, in this case I think it's saying text can optionally follow

upbeat zephyr
#

OH

#

so should i remove the [...]

obtuse wigeon
#

(in the programming world, <> usually means it's needed and [] usually means it's optional, but that isn't the same for everything)

#

yep! unless you want more text to follow

upbeat zephyr
#

okay, so use <...> instead, when there's more text to follow ?

gray bear
#

now i wish to be called majesty rotten

upbeat zephyr
#

HJVFSHVJFS

#

i didnt want mr or ms so i chose majesty

gray bear
#

are you making it like the player clicks and there's more text?

upbeat zephyr
#

uhhhhhhhh

#

hold on lemmeeeee

gray bear
#

you don't even need to add the actual <> or []

upbeat zephyr
#

im going off all this stuff

gray bear
#

aren't these two lines the same? why the ^

upbeat zephyr
#

they were originally gendered

#

im editing pre-existing mod

gray bear
#

ah! well then you can remove the ^ in after. it won't break anything im pretty sure but good practice

upbeat zephyr
#

should i remove the duplicate text ?

gray bear
#

this seems like an older mod, since there's no i18n

#

yeah there's no reason to keep it

upbeat zephyr
gray bear
#

!software also, maybe get notepad+++, helps with editing code

ocean sailBOT
upbeat zephyr
#

just for the screenshot, i mean

gray bear
#

ah alr. yeah that mod doesn't have i18n, it's all raw dialouge editing! (not that it matters for you, really)

upbeat zephyr
#

okay gotcha

#

so take away the [...] in the content.json, and remove duplicate text in the dialogue.json

gray bear
#

gender is optional SBVMischief

upbeat zephyr
#

das why i remove it SHJVFHJVFSHJ

gray bear
#

when in doubt, say farmer

upbeat zephyr
#

i have them call me 'thing'

gray bear
#

that is fair and good

obtuse wigeon
#

Theres also the honorific Mx. which is used as a neutral form of Mr and Miss/Mrs

upbeat zephyr
#

yeah i just dont wanna use it lol

gray bear
#

they're using gmnt anyway so

#

farmer decides

upbeat zephyr
#

majesty >>>>

obtuse wigeon
#

Ohhh gotcha cool

upbeat zephyr
#

so i don't have to add the rest of the dialogue into the content.json, i just have to take out the [...] and duplicate text i think

gray bear
#

the dialogue is fine where is, i'd imagine content.json loads it

autumn tide
autumn tide
#

hellooo I am back with MORE errors I need help understanding! this is related to reloading my CP thing, it was working fine before 🤷

upbeat zephyr
autumn tide
#

hmm is there like a quote directory? curious now lol

autumn tide
upbeat zephyr
#

OH YOU RIGHT HAHAHA

autumn tide
#

that comment does define my entire existence tbh

latent flame
upbeat zephyr
#

so honored to be a quote neow

autumn tide
latent flame
#

there's a lot of gold in that list, and some bodily fluids, and toilet tofu, and... stuff

autumn tide
#

i am intrigued

upbeat zephyr
#

dfhsdgasd

dusk terrace
#

how does one include an assembly reference to bmfont? Something like this?
<PackageReference Include="BmFont" Version="1.0.0" />

autumn tide
autumn tide
autumn tide
#

..okay i'll move my exploration of the quotes into programming off topic

dusk terrace
# lucid iron Is bmfont a nuget

not sure tbh, there's a few nugets referencing it but not sure sdv uses any of these

there's a bmfont.dll in the sdv folder but no idea how to have my assembly reference to it on a relative path

autumn tide
lucid iron
#

Something like this but change the hint path to where bmfont is

lucid iron
autumn tide
#

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

autumn tide
ocean sailBOT
#

Log Info: SMAPI 4.3.2 with SDV 1.6.15 build 24356 on macOS Unix 15.5.0, with 81 C# mods and 231 content packs.
Suggested fixes: One or more mods are out of date, consider updating them

dusk terrace
#

👀 working on arabic support

iron ridge
#

my favourite lewis quote: gnirts tset a si siht ,olleH

autumn tide
upbeat zephyr
#

if i do this do i still have to add all the text that comes afterwards from the dialogue.json ?

lucid iron
#

My gamepath aint standard and no one's told me my newtonsoft.json ref is bork

dusk terrace
#

fair lol

violet valley
#

what do you guys think I should make the price of a lucky lunch from a shop?

oblique meadow
#

Look at comparative foods that offer similar buffs, time, etc and price in line with those. Theres no real balance standard. But you can get a baseline from the vanilla game

violet valley
#

Ok thanks

obtuse wigeon
#

Some alternative (and unserious) suggestions are:

  • A rabbit's foot
  • A leprichaun's hat
  • 777g
violet valley
#

ok SDVpufferthumbsup

oblique meadow
#

Or a rabbits foot wearing a leprechauns hat

violet valley
#

👍

dusk terrace
#

I'd say also depends on how accessible your shop is- could be on the lower end if rare or the player had to work for it, or on the higher end if it's common and easily accessible

violet valley
#

Yeah its common and easily accessible so might be on the higher side

dusk terrace
#

the traveling merchant also sells them for 750–1,250g, dunno if that's worth mentioning though since they also sell icecream at 3x markup...

violet valley
#

lol alr

autumn tide
uncut viper
#

invalid tile gid means you saved the map while you had Tilesheet errors

autumn tide
#

OH

#

okay i can prob fix that

dusk terrace
#

the path doesn't seem right either

autumn tide
#

..hopefully

autumn tide
uncut viper
#

i don't see anything wrong with the path

autumn tide
#

uhh rn the game is saying the map doesn't exist-

uncut viper
#

i don't see any errors

#

perhaps because there is no log

dusk terrace
#
bool flag2 = char.IsUpper(s[i]) || s[i] == 'ß';
Vector2 offset = new Vector2(0f, -1 + ((!junimoText && flag2) ? -3 : 0));
if (s[i] == 'Ç')
    offset.Y += 2f;

why does the draw call for dialogue strings have to be like this SDVpetcatsad

fossil osprey
#

Iirc it's a story of "actually that's super efficient performance wise"

#

I remember a discussion about it here a good while ago

dusk terrace
#

uh oh I hope not too many mods are touching this method... I was hoping to patch over it

#

or at least, replace the reference to it when drawing the dialogue box

toxic valley
uncut viper
#

i imagine that font framework probably touches drawString

lucid iron
#

Just patch the font framework too

uncut viper
#

StardewUI possibly touches it

#

or uses it, at least

lucid iron
#

Yeah honestly if u just patch drawString itself then this stuff is avoided

dusk terrace
#

drawString seems to touch a lot more than just dialogue box string though

#

what's the font framework?

uncut viper
#

ichortower's new framework for font replacements

#

it transpiles drawString

#

its called Font Smasher

dusk terrace
#

hmm

uncut viper
#

(it patches other things ofc, but also drawString)

dusk terrace
#

I wonder if it already does what I'm trying to do then

rose path
#

how do I make HD fashion sense clothes?

obtuse wigeon
rigid musk
#

Is there a way to patch only a specific part of an event or do I have to completely overwrite the entire thing

urban patrol
#

you can use target field but you would have to count the slashes

rigid musk
#

fun ... but better than overwriting everything

uncut viper
#

you can also use ReplaceDelimited

#

both ways require no other mod to touch the event in some way though so pick your poison

rigid musk
#

I aint trying to add compatibility for it so i dont really mind all that much

empty vector
#

Is it possible to completely remove a Trigger with Content Patcher? Trying to remove an item from being turned into a specific artisan good. First I tried setting "RequiredItemId" to null which just removed all limitations, allowing anything to be put in the machine. Changing "Trigger": "ItemPlacedInMachine" to "Trigger": "None" seem to resolve this without similar issues but my friend is calling the result ugly and would like the Trigger removed completely (if possible).

This is from patch export Data/Machines. Trying to get rid the third trigger so the only items allowed are by category/tag, not specific items. It allows for better compatibility with Ferngill Simple Economy.

      {
        "Id": "Cornucopia_SmokedMeat",
        "Triggers": [
          {
            "Id": "ItemPlacedInMachine",
            "Trigger": "ItemPlacedInMachine",
            "RequiredItemId": null,
            "RequiredTags": [
              "meat_item"
            ],
            "RequiredCount": 1,
            "Condition": null
          },
          {
            "Id": "ItemPlacedInMachine",
            "Trigger": "ItemPlacedInMachine",
            "RequiredItemId": null,
            "RequiredTags": [
              "category_meat"
            ],
            "RequiredCount": 1,
            "Condition": null
          },
          {
            "Id": "None",
            "Trigger": "None",
            "RequiredItemId": "(O)874",
            "RequiredTags": null,
            "RequiredCount": 1,
            "Condition": null
          }
brittle pasture
#

TargetField Triggers and null the entry out

uncut viper
#

though, they have duplicate IDs here, may complicate it

empty vector
#

"#2": null ?

uncut viper
#

it'd be #1 if that does work

#

oh wait

#

i didn't realize the last one was the one you wanted to remove

#

Yeah try that then

empty vector
#

I feel like I tried that already but I say that all the time and when I try it again it work half the time, I'll check in a minute

#

Yep it worked lol, thank you!

finite ginkgo
#

(you don't have to use #<num> btw, content patcher will automatically recognize if a model has an Id field and you can use that instead, and it's more reliable in the case another mod reshuffles them around)

empty vector
void aspen
#

anyone has that programm that allows to convert xnb files?

#

i remember it was like two folders and two exe files to unpack and pack

gentle rose
#

we don't recommend repacking for any reason any more, but for unpacking there's this

#

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

void aspen
#

alright ty ig its works too

empty vector
rare orbit
#

btw? is Aimon111 from nexus mods on here?

#

i made a mod for personal use to essentially be a recolor pack for better honey meads to allow for recoloring of mead in the fancy style

#

but i cannot upload without permission from em n idk if they're in this discord

brave fable
#

yes, and active under the same name apparently

rare orbit
#

ohhh kk

#

i pretty much have it done but it's for personal use

#

speaking of? anyone wanna test it to see if it works for other platforms>

#

i only have this game on a windows pc currently so anyone who's open to testing my retexture mod on mobile, linux and/or mac would be awesome

gentle rose
#

does anyone here have a mod installed that lets them use debug commands in the chatbox and wants to help me test something

urban patrol
rare orbit
gentle rose
#

I can't even replicate it myself now so never mind SDVpuffersquee

obtuse wigeon
#

Not sure how changing it for personal use falls under that ngl

rare orbit
gentle rose
#

you can't do anything without permission, you can't reupload or get dp at all

#

well like the perms say, those sprites aren't theirs, they're from an itch.io pack, so you'll have to check their perms

rare orbit
#

i did double check the pack and they seem open if it's a free item

#

ex a mod

gentle rose
#

so actually they're even allowed for commercial use

rare orbit
#

ohhhh

obtuse wigeon
#

I'm confused I just looked at the license for the sprites, and theres 2, MIT and CC0-1.0, I didn't even know github could list two licenses

gentle rose
#

where did you find the github link?

rare orbit
#

personal use seems ok and i know that the author for better honey mead said it's cool to make retexture packs since their mod only uses vanilla assets and can overwrite retextures

obtuse wigeon
#

in the "More information" drop down in itch

gentle rose
#

personal use is pretty much always allowed in terms of mod perms

obtuse wigeon
#

Ahh wait the file name is different but the github tabs don't show file names, yes the art is defo under CC0 1.0

gentle rose
#

cc0 is under the filename license-art so I assume that's that

rare orbit
#

but idk if it's fine to do since aimon while they used the assets it's still under them

#

i have it basically done just need the greenlight from aimon to upload

hallow prism
#

"why is my warp not working"
because i'm editing npcwarp, that's why

gentle rose
#

it's not under aimon though, the assets aren't aimon's, aimon is just using them

hallow prism
#

tips to mod authors : editing the right property is a good idea

rare orbit
obtuse wigeon
rare orbit
#

i know dumb question but i'd rather ask then be hit with the "stolen" accusations

#

i like to make sure especially if i do not fully understand it

#

basically this is what their permissions look like but im using the food pixel sprites from the same website aimon used

#

sorry i am paranoid and do not wanna cause fights if i can avoid it.

obtuse wigeon
#

Ye it's fine, if you want to be extra certain you can download the spritepack from Itch.io and see if all the sprites are in there, if there's any not in there you could replace them with others