#making-mods-general

1 messages Β· Page 231 of 1

gaunt orbit
#

You need / for the event script, and \ to tell the json that it's still text

vernal crest
#

Huh, my N++ doesn't complain about the multilines at all

gaunt orbit
#

So depending on how you format it, you need both

vernal crest
#

It's a file type. JSON lines. I do not do what Wren is mentioning. I've never heard of it.

urban patrol
#

makes sense. i’m away from my computer right now or i’d send a screenshot

gaunt orbit
#

Better to escape them anyways just in case

vernal crest
vernal crest
gaunt orbit
vernal crest
#

Nope, that runs perfectly in game (with no complaints from CP).

gaunt orbit
#

Because \ is an escape character

#

In computing and telecommunications, an escape character is a character that invokes an alternative interpretation on the following characters in a character sequence. An escape character is a particular case of metacharacters. Generally, the judgement of whether something is an escape character or not depends on the context.
In the telecommunic...

vernal crest
#

Adding the backslash to the end of the line does not stop Sublime from screaming about it

gaunt orbit
#

Hm, weird, it should

#

Do you have lf or crlf line endings?

vernal crest
gaunt orbit
# vernal crest

See if you can find an option to show whitespace characters

vernal crest
#

I don't know, Sublime just says "Windows"

gaunt orbit
vernal crest
#

There is no Linux but I changed it to Unix. No change. Also tried Mac OS 9 without result.

#

But I don't write my events in Sublime anyway so I don't mind.

gaunt orbit
#

Windows uses two characters for line endings, unlike literally everyone else, so you can't escape them, because you can only escape one of the two characters

urban patrol
#

(i’m fascinated by how much i can learn just by lurking in this channel)

tiny zealot
#

ah yes, LF vs CRLF returns to the chat

vernal crest
#

I opened it in VSC and it looks like this

gaunt orbit
#

I am an eternal crlf hater

vernal crest
#

When I add backslashes to that and it's on CRLF it changes nothing. If I then change to LF it says there are even more errors.

gaunt orbit
#

That's weird

vernal crest
#

This is it with LF

#

(I am aware the one on line 245 shouldn't be there but removing it doesn't affect the rest)

#

And this is with langue set to jsonl

dusk mulch
#

How can I put down one of those logs that needs the steel axe on a map that isnt the farm?

vernal crest
#

I can work with jsonl or with jsonc because I just ignore the errors with jsonc. It's not horribly blaring like in Sublime.

gaunt orbit
#

Well, if all else fails, you can technically wrap the line breaks in comments, since those can be inside values

vernal crest
#

It is paths

dusk mulch
vernal crest
#

Oh then FTM

gaunt orbit
#

It's horribly cursed but newtonsoft will parse it and it's valid json5

dusk mulch
vernal crest
#

I just prefer changing my file language because I don't need the error checking anyway, but it's good to know there are options!

dusk mulch
hard fern
#

Is it really only farm only though? I feel like ive seen maps that dont use ftm and have logs there

dusk mulch
#

The one in cindersap for the secret woods is hardcoded

gaunt orbit
hard fern
#

Ohh so you want them to respawn

dusk mulch
#

No.

#

1 time break large log

hard fern
#

Why are you saying no

gaunt orbit
#

Is that really farm only?

dusk mulch
#

I want it to be able to break once and not respawn

dusk mulch
gaunt orbit
#

Weird

hard fern
gaunt orbit
#

Well, time to add that to the todo list

dusk mulch
#

I have tried it and it doesnt work unless I am on a farm map

hard fern
#

Well in uhh idk how long it will take me, but I'll just load in my map and test it

#

It's still 100% incomplete

#

But it's worth a shot ig

#

Then we can know for sure

uncut viper
#

i dont see anything in the code that stops a log from being added if its not a farm, though

dusk mulch
calm nebula
dreamy arrow
hard fern
#

What do you mean by "not working" though?

dusk mulch
gaunt orbit
dreamy arrow
#

Ah, ok i see now. Sorry, I thought this is what you were trying to do.

uncut viper
#

have you tested on a new save?

rigid oriole
#

I actually toyed with the idea of it earlier today (not that i'm going to end up actually doing it, and especially not with a gui), so there's at least one modder here who would consider using it

dusk mulch
rigid oriole
#

it'd be kinda fun to visualize forks as like a flowchart (same with the question/answer choices, etc.)

vernal crest
#

Not a farm

dusk mulch
#

Well it isnt working for me and that also means the wiki is wrong

hard fern
#

In that case you might want to check your map again.

dusk mulch
vernal crest
#

The wiki is frequently wrong when it's a case of things having changed between game versions (which this probably is).

rigid oriole
#

ur good deed of the day can always be updating outdated wiki info :)

hard fern
#

Wonder what else is outdated/missing from the wiki

rigid oriole
#

sometimes i update the wiki and i go "Wow. I am contributing to Society"

rigid oriole
hard fern
#

O

rigid oriole
#

if you're bored

hard fern
#

πŸ˜… i don't have that much confidence

#

The most i ever did was add myself to the mod authors section, and it's currently outdated

vernal crest
#

There's still stuff from the 1.4 migration page that isn't on the right pages!

rigid oriole
#

you'd need the mass edit perms probably

hard fern
#

Whaat all the way from 1.4

dusk mulch
#

There is no Log map or tile property

vernal crest
#

Doing migration page stuff is really time consuming and difficult.

hard fern
#

I can imagine...

vernal crest
#

I just did it for the events page the other day and it took me about 8 hours.

hard fern
#

Wow

rigid oriole
#

I did a lot of the migration stuff until it got to things I didn't know and I was like "i have no idea where on the event/map pages this goes"

uncut viper
#

someone should just make a wiki page listing all the things that need to be put on different wiki pages

vernal crest
# dusk mulch There is no Log map or tile property

I think that maybe what happened is that logs and stumps both got dehardcoded in 1.6 but because there isn't a logs map property like there is for stumps, the stumps map property got updated on the wiki page but the paths layer bit got forgotten about (since that's also still saying stumps are farm-only).

rigid oriole
vernal crest
#

I spent a lot of time digging through the code to figure out a bunch of the stuff I migrated because I was determined to finish the entire events migration. And I kind of did, only there's a festivals section that I haven't migrated because I was too tired to learn about festivals lol

uncut viper
#

did you find every unlisted event command

vernal crest
#

I didn't double check because of the aforementioned fatigue lol

sour sleet
#

does ftm have awareness about not spawning forageables on trees, walls etc or do i need to specify EVERY single pair of coordinates to not spawn on?

hard fern
#

Isn't there a property for not spawning stuff on a tile?

sour sleet
#

Oh you mean within Tiled?

gritty summit
#

I clicked on each index cell in the farmhouse, then set the room value and floor value, and when I entered the game, I was able to change the floor color. But the thing is, the larger the room, the more I have to change each cell in that room, which takes a long time. Is there a way to change multiple cell values ​​at once? I edited the floor ID in the Map properties section for the wallID or floorID value, but when I entered the game, it didn't accept it. If I tested it, I could only change each cell one by one. :<

vernal crest
vernal crest
dusk mulch
#

You should be abled to see it

sour sleet
dusk mulch
#

And I can walk right through which means there isnt a log

gaunt orbit
hard fern
#

I was beaten

sour sleet
#

Haha thanks

gaunt orbit
#

Use NoSpawn All to disabled spawning anything

sour sleet
#

So if i want certain tiles to not spawn things on, i make a custom tile property NoSpawn T?

gaunt orbit
#

It's not a true/false property

sour sleet
#

Ahh ok, is it still a string?

gaunt orbit
#

Yes

vernal crest
# dusk mulch

I have no idea if this actually affects it, but do you have the map property Outdoors T?

gaunt orbit
#

You can be more specific about what gets excluded, but the only value I remember off the top of my head is All

sour sleet
#

I don't actually want anything to spawn there so that works perfectly

naive wyvern
#

When in doubt, use Esca's config html thing for FTM πŸ™

#

Changed my life fhdhdjs

lusty elm
# dusk mulch
  1. Make sure you're making a new save file as paths only generates on save creation, 2) make sure you're putting your updated map in your testing folder, 3) experiment, you have a non-working model, see what you can do to get A log to spawn at all, even if its not in an ideal place, then once you have both, test to see whats breaking it. its how we figured out a lot of this kind of stuff back in the day.
sour sleet
#

It's such an great tool, really helped making my alien mod SDVpuffersquee

gritty summit
# vernal crest Yes you can just make one really big object that covers the whole space! Or you ...

not to change the floor color, but I want to be able to use the floor and wall in the game when entering the game, because when I redid the farmhouse, I lost the wall id and room id, so when running the game I can't change the floor color to another existing one, I found a way to enter each room id 1 for the index but I find that entering each cell 1 to show the room id is too long, because I edit the room is a bit big

dreamy arrow
gaunt orbit
sour sleet
#

my water tiles have "Water T" as a property. Does that mean nothing will spawn here?

gaunt orbit
#

almost all of the current modding resources are written for it, and it's just overall much more convenient

vernal crest
gaunt orbit
#

Tide is ancient

vernal crest
lusty elm
lusty elm
dusk mulch
hard fern
#

Nope, new save is always make a brand bew save

lusty elm
#

its why after making a new farm map i have to delete about 40-50 test save files.

vernal crest
gritty summit
hard fern
#

I think you gave to do something for tiled to read tbins

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

gaunt orbit
#

This will give you tmx files, which are what you want

fierce vault
#

Would I be limited to how many tiled layers I can have for one category, like 'Back'? I've seen TMXs from the game, and I've seen up to four on some.

gaunt orbit
#

Tbins are the old fashioned way

gaunt orbit
vernal crest
lusty elm
#

I think Tiled also has on default install the plugin to read tmx/tbins as unchecked or something.

sour sleet
#

Because I'm creating custom tile properties for a tilesheet, will these not work with recolours?

lucid iron
#

if u have too many does the game explode weaker computers

hard fern
#

Custom properties, or custom tilesheet?

sour sleet
#

custom properties (like NoSpawn) on a vanilla tilesheet

fierce vault
hard fern
#

Because properties are just telling the game to look at this tile and make it do x so you can stick that on just about anything

vernal crest
gaunt orbit
fierce vault
#

Thanks

vernal crest
gaunt orbit
#

Worth noting- extra layers are visual only. Properties and collision on them are ignored

fierce vault
vernal crest
#

@dusk mulch I see you just edited the wiki about the log thing. I have a couple of questions. 1) Did you confirm it's actually outdoors only rather than any location? 2) Did you check that the boulder is still only farm only?

fierce vault
gaunt orbit
fierce vault
#

Or collide with them?

dusk mulch
fierce vault
#

oh sorry

#

you said that

vernal crest
vernal crest
#

(In fact, most of my decompile reading has been to check stuff I'm editing for the wiki lol)

#

Also did y'all know that changing tilesheet order for vanilla maps doesn't break everything anymore? You're still not supposed to do it but now it's for performance reasons instead of explosions.

fierce vault
#

So, I'm guessing now that if I have any furniture behind another piece, like a plant layered behind another, I can't make one of them a solid object?

vernal crest
#

If they're overlapping tiles it shouldn't matter because the one from the Buildings layer will be impassable anyway.

#

And any bits where they don't overlap can both be on Buildings because they're different tiles.

tiny zealot
dusk mulch
#

ok

vernal crest
#

You don't have to (and shouldn't) put the entirety of a piece of furniture on one single layer.

dusk mulch
#

i tested it and the log, stump and boulder cant be indoors

fierce vault
#

Ah, that makes sense I guess

#

I know, some need to be on front layers. Looking at the unpacked vanilla houses has been helpful

vernal crest
vernal crest
fierce vault
#

I haven't heard of a patch reload? I haven't done any ingame testing yet though. Hopefully there is some good documentation on this.

#

Thanks

dusk mulch
#

patch reload <ModId>

vernal crest
#

In fact, I make sure I can get my map in game while it's still a vanilla copy before I start editing it.

fierce vault
#

I am not that familiar with the technical stuff beyond loading the npc into the game with basic dialogue

vernal crest
#

Too many fiddly bits that can go wrong with mapmaking to do much work without testing in between.

fierce vault
#

Yeah, I'd better test it soon

tidal stone
#

how do i write the content json brackets for multiple things to load?

glossy cargo
#

Does the vanilla game keep track, somewhere, of all the gifts that were ever given and to whom?
For context, I'm making a feature to reward players when they "complete" secret notes 1-9 (There are all the notes that just describe some loved gifts). My definition of complete is, give all the loved gifts mentioned in the note.
Do I need to keep track of all gifts myself, or does the game do it and I can just read some data somewhere?

tender bloom
#

the game must have it

tiny zealot
#

i don't know where it is, but it shows up on the social pages so it must be somewhere

tender bloom
#

it uses it to show what you "known" in the gifts log

#

where, idk

calm nebula
tender bloom
#

possibly in the "Friendship" class

glossy cargo
#

Alright i'll try to track that down. Thanks!

tiny zealot
#

elizabeth, mom said it was my turn with the brain cell

tender bloom
#

but i was using it! 5 more minutes!

tender bloom
#

so the vanilla game feature will not help you here

#

but you could intercept that maybe

glossy cargo
#

wait what gets marked?

#

oh the secret note pretends you've given the gift?

#

ew lol

#

I can probably stop that

tender bloom
#

like if you read the secret note that says Abigail loves something you get gift taste revealed

#

same as when you see the dialogue witht that

vernal crest
tender bloom
#

"did you know pierre hates smelly socks? he really hates them"

#

those type of automatic dialogue

dusk mulch
tender bloom
#

shhh you never saw anything

glossy cargo
#

What's one more Harmony Patch after all ThisIsFine

#

For anyone wondering, it's here
Farmer.cs

public SerializableDictionary<string, SerializableDictionary<string, int>> giftedItems;
calm nebula
#

mysteriously, it actually counts the number of times something has been given

lusty elm
vernal crest
glossy cargo
#

So yeah, the reason it counts, is that when the gift taste is revealed from an external source, it adds it to giftedItems[npc][objectId] with a value of 0

vernal crest
#

And I personally adhere to it because I make mistakes every time I do something so I prefer to keep my mistakes limited to within one or two steps at a time xD

lusty elm
#

.remind me in 16 hours to actually start writing my mapping tutorial.

sour sleet
#

Anyone know why my content.json isn't working for my map for FTM?

lusty elm
#

Did I misremember the thing?

vernal crest
#

It doesn't need the period to work and maybe it doesn't work with it?

calm nebula
#

remind @lusty elm in 16 hours to mapping tutorial

patent lanceBOT
#

...ok. but you owe me. big time. (#6551484) (16h | <t:1740768714>)

vernal crest
sour sleet
tender bloom
#

is there space for them?

sour sleet
tender bloom
#

this is pretty strict iirc "StrictTileChecking": "Maximum",

lusty elm
#

Is the map name correct? I'm on mobile atm

sour sleet
#

Yep because forage is working as it should be

#

Oml, I know the problem

#

I put the correct map name on the forage part but not the large objects part SDVpufferwaaah

#

God I'm dumb sometimes lmao

lusty elm
#

You're not dumb, we all make mistakes and oversights, its why this channel even exists, to help each other through it all.

sour sleet
#

thank you SDVpufferheart

unique sigil
#

πŸ‘€ unimplemented farm? interesting (hmu anytime! SDVpufferheart)

unique sigil
sour sleet
#

If i want to make 2 maps with a FTM config within one mod, how do i go about doing that? Do i make 2 content.json files, one for each map?

lusty elm
#

Copy the section that you want to reuse and target a different map with different settings

#

if you want to see the chaos you can look at my Forever Falls Farm FTM content.json, i think it uses FTM on 8 maps.

sour sleet
#

Oh ok thanks. Haha think I'll check it out to see how it's done properly. So they all go in the same content.json?

lusty elm
#

yeah

brave fable
lusty elm
#

A lot of my farms, even if i only have like just the farm map have at least 3 settings under basic forage, Day 1 Seed weeds, Seed Weeds, and Forage. each with different settings.

calm nebula
#

I have knitting

lucid iron
#

stats...

lusty elm
calm nebula
#

Oh, stats soon, right?????

lusty elm
#

true, it is reaching end of month.

unique sigil
brave fable
#

it's nice having a visualisation on unique tile behaviours, sure, but that means there has to be a corresponding tileset and spritesheet for every single one

calm nebula
#

Not necessarily

#

Just have a (o) tile

#

With tiledata

#

Like the trees

brave fable
#

it's amazing how i can tell exactly how wide your phone is by the length of your messages

#

technology is wonderful

calm nebula
#

.... it's not that smallllll

#

This is about half my screen width

brave fable
#

pressing 'send' when you reach the end like a typewriter

calm nebula
#

I'm just chatting between sprints

brave fable
calm nebula
#

So you can think of the line breaks like me taking breaths

vernal crest
#

I always think of them being the length of your thoughts between work thoughts. Like "not necessarily" "work thought" "just have a (o) tile" "another work thought" and so on

#

Hyper task switching

hard fern
#

I feel like i type the way I tlak

#

*talk

rigid oriole
#

Modding is cool because now you can lightly threaten pierre for telling the townspeople he grew the cauliflower you sold him

tribal ore
#

Anyone here good with json errors? CP apparently doesn't like it when I do this:
"Query: '{{spouse}}' IN ({{Supported.Spouses}})": true

The dynamic token looks like this:
```json
   {
      "Name": "Supported.Spouses",
      "Value": "'Alex', 'Elliott', 'Harvey', 'Sam', 'Sebastian', 'Shane', 'Abigail', 'Emily', 'Haley', 'Leah', 'Maru', 'Penny'"
   },```

And the error looks like this:

[Content Patcher] Ignored Wedding Anniversaries > Include data/Dialogue.json > EditData Characters/Dialogue/{{Spouse}} #1: error reading info. Technical details:
System.InvalidOperationException: Error parsing '' as a tokenizable string
 ---> ContentPatcher.Framework.Lexing.LexTokens.LexFormatException: Reached end of input, expected end of token ('}}').
 ```
#

Trying to follow a CP documentation example: "Query: '{{spouse}}' IN ('Abigail', 'Leah', 'Maru')": true

#

I'm guessing that the dynamic token is expanding in a weird way. Or something

vernal crest
#

You can do a patch parse of your token to make sure it's evaluating to the right thing

tribal ore
#

just run "patch parse" ?

vernal crest
#

patch parse "{{Supported.Spouses}}" "yourmodid"

tribal ore
#

Thank you! I'll give it a try

vernal crest
#

I can't figure out where it's expecting an end of token and not finding that

rocky robin
#

Hey, I am curious if there is a way of using the Chat Box to have a mod get a string (word or sentence) from the user and then give an answer back? Like is there a function where we can add onto?

gritty summit
ocean sailBOT
#

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

tribal ore
#
[Content Patcher] 
Metadata
----------------
   raw value:   {{Supported.Spouses}}
   ready:       True
   mutable:     True
   has tokens:  True
   tokens used: Supported.Spouses

Diagnostic state
----------------
   valid:    True
   in scope: True
   ready:    True

Result
----------------
   The token string is valid and ready. Parsed value: "'Alex', 'Elliott', 'Harvey', 'Sam', 'Sebastian', 'Shane', 'Abigail', 'Emily', 'Haley', 'Leah', 'Maru', 'Penny'"


#

FWIW, I tried using the string without the single quotes around each name as well

#

Got an entirely different error

vernal crest
#

Is it just the {{Supported.Spouses}} token that's the problem? Does it work if you just copy the value of the token in? (I don't see how it wouldn't, given that'd be identical to the CP example, but 🀷 )

tribal ore
#

Give me a minute...

calm nebula
hot gale
#

I got it working, although I think because Im using mead as the primary item it no longer copies any color from the fuels, is there a way to do that? Following the wiki formula for Output inherit the dye color of input items is for the input item, but can fuel be copied?

gritty summit
vernal crest
calm nebula
#

I think this may be overcomplicated

#

try

       {
          "Name": "Supported_Spouses",
          "Value": "Alex, Elliott" // so no quotes
       },

// later

{
      "When": {
        "Supported_Spouses" : "{{Spouse}}"
        }
}
tribal ore
#

Alright. Giving it a shot

brittle pasture
calm nebula
#

ahh, sorry!

#

I typoed, was fixing slowly, try that

vernal crest
#

Lol I was like "Atra that is the same thing"

hot gale
gritty summit
hot gale
brittle pasture
#

did you also set CopyColor true in the baseline rule

rigid oriole
#

Not being able to reproduce a bug a user reports is so frutratinggg

rigid oriole
#

i'm just gonna add an extra null check and uhhhhh push a patch version 😭

tribal ore
calm nebula
#

huh

#

still a parse error?

#

can see entire patch

tribal ore
#

Sure, hold on. Do you want that as a log file or pasted here?

calm nebula
#

I meant the json for content patcher!

#

see, I don't see the parse error in what you posted

calm nebula
#

{{ {{Spouse}}.gifts }} this isnt' valid

#

it's not php

gritty summit
tribal ore
#

Sorry XD

calm nebula
#

you can't

tribal ore
#

Really? :/ dangggggggggg

#

frustration

#

pain

#

sadness

#

I was trying to avoid adding a whole new editdata block for each and every spouse

tribal ore
# gaunt orbit C#

Respectfully... no xD But thank you for the suggestion all the same

brittle pasture
calm nebula
brittle pasture
#

and the 2nd sprite is your aged mead bottle?

hot gale
hot gale
#

Which is index 2

gaunt orbit
#

I'm mostly joking, but the rule of thumb for modding is if you want to do scripting you usually need c#.

hot gale
#

I didnt end up using the second mead, index 1

brittle pasture
#

ok, the extra colors from selph.ExtraMachineConfig.RequirementCount.1 (or 2, or 3) will take the monochrome sprites 2, 3 and 4 tiles away

#

the primary color (which will copy from the color of the input mead item) will use that monochrome sprite

#

which I don't think there is any?

tribal ore
hot gale
#

I have my meads set to color_gold

brittle pasture
#

you need to set up sprites for the extra colors

#

for the fruity flavors

hot gale
#

Color them all myself? That's fine

#

I would need to do that for all base colors then I imagine

brittle pasture
#

wait, give me a moment

calm nebula
brittle pasture
#

let me explain better
I see you setup color from only one fruit? you'd need a monochrome sprite next to the one you have

tribal ore
# gaunt orbit Mobile players?

Or just people who don't trust mods generally. It's easier to justify CP because it's so widely used and tested, and CP mods are utterly transparent -- just .json really

calm nebula
#

and jsut make a comment to the translators DON'T TRANSLATE THESE

brittle pasture
#

the existing monochrome sprite is for the primary color, which will be copied from the primary input

#

EMC unfortunately currently does not support fuel color into primary color

tribal ore
brittle pasture
#

(I didn't expect ppl to have a use case where you don't want fuel color as the primary color of the output tbh)

tribal ore
#

That... is utterly stupid but is also kind of awesome

hot gale
#

Ah, okay damn

calm nebula
#

it's utterly stupid but yes it would work

brittle pasture
#

maybe I can jerry rig a fix real quick

tribal ore
#

Ok, before I cave and make 12 different EditData blocks, I'm going to try it

hot gale
#

So should I just abandon the recolor and use my existing aged mead sprite

#

ooo ok

brittle pasture
#

you can still do colors, you just have to put the monochrome sprite two tiles away from the mead sprite

tribal ore
#

"It's so crazy, it just might work!"

gaunt orbit
gaunt orbit
#

I get what you're getting at but I don't think it's a very common concern. Usually sketchy mods get flagged really fast bc a lot of us are nosy, and nexus's filters are strong

calm nebula
#

but also, i18n abuse sounds fun

gaunt orbit
#

It is fun

brittle pasture
#

yeah
you just need the second one if you're only using color from the first fuel

#

the third one will use color from the second fuel, fourth one third fuel
first one is the primary input's color, which is the mead bottle's gold

hot gale
#

lol idk how this happened

brittle pasture
#

looks like you don't have them arranged in 16x16 squares

hot gale
#

I used texturepacker the same as I always do, does doing a patchreload not work well with sprites?

exotic wasp
#

πŸ¦‹

hot gale
#

Nvm fixed it

#

:p

#

Color is not copying though

gaunt orbit
#

Your sprites are only 12px wide

#

I counted

exotic wasp
#

Johtsy

tribal ore
# calm nebula but also, i18n abuse sounds fun

Man.... I think it's a good idea, but I think the problem is actually somewhere else. It has to be common to all 3 of the attempted patches because none of them load. Though I'll admit this is fun:

    "{{ModId}}_HappyAnniversary": "{{ i18n:{{Spouse}}.Anniversary.{{Random: Range{{0,4}} }} [{{ i18n:{{Spouse}}.gifts }}]",
hot gale
#

tried "selph.ExtraMachineConfig.ExtraColor.1": "DROP_IN_ID_2", and "selph.ExtraMachineConfig.ExtraColor.1": "DROP_IN_ID_1",

calm nebula
hot gale
#

oh is it ExtraColor.2 or 3

calm nebula
#

(missing one)

brittle pasture
#

no that should do it

#

hmmm

#
  1. install lookup anything and generic mod config menu
  2. in LA's GMCM settings, enable "Data Mining Fields"
  3. press F1 on the mead item that's not being colored
  4. scroll down to the data mining fields and show me what's there
hot gale
#

kk sec

brittle pasture
#

hmm, it's not a ColoredObject in the first place

#

did you test with fresh items?

hot gale
#

Oh snap

#

Derp

#

Sec

tribal ore
#

missing }} to close the i18n

hot gale
#

Same result

tribal ore
#

Thank you for all of your help! For the future, how would I negate "Supported_Spouses" : "{{Spouse}}" in the condition? I love this simpler syntax and would like to use it

sour sleet
#

With FTM, how do you make it so that for example, 6 stumps spawn per day but if they’re not chopped down, no more will spawn until they are cut?

calm nebula
#

"Supported_Spouses|contains={{Spouse}}" : false

tribal ore
#

Thanks so much! How would you like to be credited? The i18n idea was genius

brittle pasture
#

can you post your object definition?

#

the input mead item has to have a color tag

hot gale
#

omg they dont. They used to, i restructured a lot ofg stuff about my mod and I guess that didnt make the cut

brittle pasture
#

yeah add a color_gold tag and I think it should work with a fresh test

hot gale
#

Works :D

#

Now, because scope creep is real, any way to randomize the adopted fuel colors? 🀣

brittle pasture
#

make three entries, one can be "selph.ExtraMachineConfig.ExtraColor.1": "DROP_IN_ID_2" instead of "selph.ExtraMachineConfig.ExtraColor.1": "DROP_IN_ID_1"?

#

and one for 3

dreamy arrow
hot gale
#

Gotcha, nice

dusk mulch
#

I am adding more garbage cans and I want to use a blank file then edit the blank file for each garbage can so I don't have to use multiple maps/JSON's, is it do-able?

#

Wait

#

I can use an EditData then the FromFile can be a blank then edit the garbage can data

gaunt orbit
#

Isn't garbage data all in one game asset?

dusk mulch
unique sigil
gaunt orbit
#

I don't understand at all

#

You can't use editdata with fromfile

sour sleet
brittle pasture
#

secret woods doesnt work like that though?

brittle pasture
#

the stumps always respawn

unique sigil
#

secret woods stumps always respawn regardless if all havent been cut down

sour sleet
#

Ok I will do, just it wasn’t working when I used it last time hence me using FTM. When I cut the stumps spawned with the map property, they didn’t respawn

dusk mulch
#

I am making a mod where there are more garbage cans around town and I cant figure out how I would put the property into the map because I would need multiple maps, can someone help?

sour sleet
#

Yep I looked at the wiki and they did actually spawn initially, just didn’t respawn

gaunt orbit
gaunt orbit
#

Aaaah

royal stump
gaunt orbit
dusk mulch
gaunt orbit
dusk mulch
#

I already know about it, ty!

sour sleet
dusk mulch
#

I just forgot about it for a bit

vernal crest
royal stump
dusk mulch
#

I am trying to think of a good place to put pierres garbage can but I can't think of one...

hot gale
sour sleet
brittle pasture
#

no, keep one entry in outputrules

#

have only one trigger

#

but three entries in OutputItems

dusk mulch
hot gale
#

Ahhh gotcha, my mistake thank you

sour sleet
hot gale
#

Should I also have "UseFirstValidOutput": false,

sour sleet
#

In town I mean

dusk mulch
#

The right one: Blocks path
Top: Hard to find
Top left: Too far out to be able to tell it is pee hairs
Left: There is already a garbage can going there

sour sleet
#

There’s a tiny bit of grass in the top right

#

I don’t think it’s hard to find

dusk mulch
#

Wait i got a spot

brittle pasture
#

but feel free to add just in case

sour sleet
#

Where did you decide?

hot gale
#

lol is this typical behavior

dusk mulch
sour sleet
#

Yea that’s easy to spot

brittle pasture
#

probably because of the instant ready rule? idk

hot gale
#

My thoughts as well

dusk mulch
#

actually maybe there doesnt need to be more garbage cans

#

every building has one except pierre and harvey

solid ocean
#

i am wanting to get into making mods for stardew. so i am wondering if i should just learn Json and stick with that for awhile or go straight to learning C# and use that for mods.

hot gale
#

I guess it depends what you want to do

solid ocean
#

i mainly just want to start off with small stuff i suppose. reskins, new item or two, etc.

hard fern
#

You don't need C# for that

hot gale
#

Im just starting out as well, but I think thats all json stuff

hard fern
#

Just use content patcher πŸ‘

#

!startmodding

ocean sailBOT
#

Making mods can be broadly divided into two categories:

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

solid ocean
#

i have almost no coding knowledge besides basic html and very bare bones css

dusk mulch
#

What if, instead of having to make multiple maps for little things, I just copy the whole map over and EditMap it ontop of the normal map

hard fern
#

And here i am making multiple mods

#

It's really easy to learn how to use frameworks

#

So hopefully you shouldn't have too hard of a time

solid ocean
#

alright

#

and what do i write with? notepad++ or something like visual studio?

dusk mulch
#

I use notepad++

#

But VS is popular too

hard fern
#

Notepad ++ and visual studio code are the ones I see

hot gale
#

VSCode is much better imo :p

#

Just my 2 cents

hard fern
#

Same haha, i like vsc a lot more

solid ocean
#

or is there something else better or prefered over the two?

hard fern
#

It's really up to your preferences

hot gale
#

Those two are pretty much the industry leading standards afaik

hard fern
#

Parsley i feel like you've been typing for 10 years πŸ˜”

dusk mulch
#

Bro is writing the entire FNAF lore

vernal crest
dusk mulch
vernal crest
dusk mulch
#

I am adding more decor to the town to give it a bit more... liveliness. And I dont want to have to make multiple maps for each bit of decor

vernal crest
dusk mulch
#

Oh... Well what do you suggest I do?

vernal crest
#

If you just want to add a few tiles here and there of different vanilla decor items just use maptiles to do it.

dusk mulch
#

No I am adding like garden beds and adding quite a bit of stuff

vernal crest
#

Then yes, make lots of little maps.

#

Or just one big map and just patch different parts of it. You can adjust your FromArea so you're using little bits from your one big map in each patch.

gritty summit
vernal crest
dusk mulch
#

SDVpufferwaaah i cant win with mapping lol

vernal crest
vernal crest
# dusk mulch <:SDVpufferwaaah:982138774635020288> i cant win with mapping lol

There's a reason that most of the mods that make significant changes to vanilla maps are incompatible with lots of things. If you were really committed to changing the vanilla maps and didn't care about SVE compat you could Load your maps instead. Your mod would be incompatible with any other mod that tried to Load vanilla maps but other mods that used EditMap would be sure to edit after your map so you wouldn't erase their changes.

dusk mulch
#

Hmmm... Not many mods do load their maps for compatibility purposes... so if I load it I would only mainly be incompatible with SVE...

#

I will load it.

#

Thank you!

#

(I just closed out of the map so now I have to restart)

gritty summit
vernal crest
gritty summit
dusk mulch
#

Do tilesheets have to be from the /Maps folder or can they be from anywhere?

iron ridge
acoustic summit
#

They need to be from the /Maps unless you use ATA, or you (can, but not recommended) include it in your assets. If you only need one tileSheet from outside /Maps you could probably get away with that.

dusk mulch
#

Then I won't

#

Orrr...

#

I will use ATA

#

I just need to have it in the mods folder right, I don't need to do anything, just as long as the tilesheet path has the /content bit?

hard fern
#

you need to have the same path as how it is in the game files

#

so if you're using craftables

#

Content/Tilesheets/Craftables

#

(i think)

dusk mulch
#

So that path would need to be the same as the tilesheet path?

hard fern
#

yes

dusk mulch
#

Cool

#

Ty!

hard fern
#

i like to just keep my own "Content" folder in the same one as my maps

dusk mulch
#

What do you mean?

uncut viper
#

(keep in mind you still delete the tilesheets before publishing)

dusk mulch
uncut viper
#

like this

#

this is showing an example for using a modded asset but theres a TileSheets folder there too and it works the same

#

put a Content folder somewhere next to your .tmx with the right files inside it that match the unpacked path

#

and use that content folder to add the tilesheet

dusk mulch
#

Ohhh, ty!

vernal crest
uncut viper
#

that's actually my go-to before anything else because I find messing with the xml easier than messing with Tiled lol

vernal crest
#

Yeah me too haha

#

Every time someone suggests fixing tilesheet directory climbing by putting the tilesheets into the map folder and opening Tiled I'm like "welllll.....I guess you can do it that way"

hard fern
#

My pet peeve is when i mess something up in tiled then have to go edit the xml XD like "ah dangit"

uncut viper
#

tbh whenever I start doing my own map stuff I'm probably just gonna add a little thing on my site that just lets you drag and drop your tmx into it and it'll fix it for you and spit it back out

#

because I will mess up my sheets I know this

#

and I will want to be lazy

hard fern
#

Efficient solutions come from people being lazy

uncut viper
#

im kinda surprised SMAPI doesn't just strip out the climbing for you

lucid iron
#

time to PR smapi Dokkan

#

tbh i had vague thoughts about how ATA ought to just, be in smapi

#

it doesnt seem very criminal

vernal crest
#

I've been struggling to figure out what the game uses tilesheet image source for compared to tileset name. I think I've identified that image source is used to find the tilesheet in the game assets to use, but tilesheet order is determined by tileset name. I'm not sure if there's other stuff. I want to get it straight in my mind so I can work out a useful, consistent naming convention and editing process.

uncut viper
#

the reason I don't is because I am such a lowly coder worm that my default thought is just always "surely there's just a reason for it I'm unaware of" wrt SMAPI

lucid iron
#

wurm

uncut viper
#

the image source is indeed what is used to load the asset

#

it takes the image source and puts it in front of "Maps/"

lucid iron
#

i dont think the asset target itself matters beyond seasonal sheets (spring_)

vernal crest
lucid iron
#

only for the tileset name

#
 <tileset firstgid="2241" name="z_spring_island_tilesheet_1" tilewidth="16" tileheight="16" tilecount="1280" columns="32">
  <image source="spring_island_tilesheet_1.png" width="512" height="640"/>
#

so in this map i am using Maps/spring_island_tilesheet_1 asset, in a tileset named z_spring_island_tilesheet_1 so that it sorts later

vernal crest
#

I dislike that my file name has to match the target :(

#

Is there any other purpose that either tileset name or image source gets used for?

lucid iron
#

your filename doesn't have to match the target yggy

vernal crest
#

Yes it does or I can't edit it in tiled

lucid iron
#

just symlink it

vernal crest
#

How does that work?

lucid iron
#
  <tileset firstgid="153" name="z_SewerChickens" tilewidth="16" tileheight="16" tilecount="8"
    columns="4">
    <image source="mushymato.BuyAllVanillaAnimals/SewerChickens.png" width="64" height="32" />
vernal crest
#

Can I change the name of the symlink?

lucid iron
#

while i was editing this mod i had a subfolder named mushymato.BuyAllVanillaAnimals bc eventually i was gonna load {{ModId}}/SewerChickens

#

the actual file is called SewerChickens but literally nothing stops me from naming it something else

#
~/mushymato.BuyAllVanillaAnimals (main) > ln -s ../sewer_chickens.png SewerChickens.png
lrwxrwxrwx 1 mush mush 21 Feb 28 02:24 SewerChickens.png -> ../sewer_chickens.png
#

coulda been like this if i wanted blobcatgooglyblep

vernal crest
#

I don't know how symlinking achieves that

#

Can you rename the uh, I don't know what it's called. The pretend file that's linked to the real file?

lucid iron
#

yea thats whats happening here

#

SewerChickens.png is the symlink, to a real file named sewer_chickens.png in the parent folder

#

the actual load would be

{
  "Action": "Load",
  "Target": "Maps/{{ModId}}/SewerChickens",
  "FromFile": "assets/sewer_chickens.png"
},
#

(i didnt bother changing the filename in actual mod, only the folder, but i could have Dokkan)

vernal crest
#

Hmm okay that's cool

orchid glade
#

I want to set up a save file for mod testing (so far I've been using my perfection save but I can't really test joja stuff with that). What mods should I have on a testing save? CJB cheats / item spawner? event lookup, lookup anything?

fluid shell
#

Looking for advice on modding dialogue... The goal is to either A) Have a default dialogue that overrides all other dialogue and is repeatable (IE, regardless of keys, always load 1 single dialogue, and it repeats so unless coded no other dialogue can occur), or B) Catch and override the dialogue action when clicking on an NPC (I've tried using OnButtonPressed).

Any advice is appreciated.

gritty summit
#

I made a new file but it still has GID 1 error hic

#

help me

hot gale
latent mauve
#
This should cause Tiled to update the XML data and recalculate the starting GID's. You can then remove the change you made and save again.
Always make sure to have your tilesheets in the same folder as your tmx when editing your map in order to avoid invalid tile GID errors.```
hot gale
gritty summit
vernal crest
orchid glade
vernal crest
hot gale
#

Is there anywhere that shows a good example of how to add a custom recipe for a custom machine to a shop?

vernal crest
gritty summit
#

both go plsssss

hot gale
#

I unlocked a custom machine at level 4 farming, and it had no icon in the level up screen. the sprite fully works otherwise, how do I fix that?

#

Also has no icon in the crafting window

mighty ginkgo
#

i don't know about that, but did you already figure out how to add the crafting recipe to a shop?

hot gale
#

I have not lol

mighty ginkgo
#

okay, i think it would be something like this json { "Action": "EditData", "Target": "Data/CraftingRecipes", "Entries": { "{{ModId}}_the_id_for_the_crafting_recipe": "" // the crafting recipe here } }, { "Action": "EditData", "Target": "Data/Shops", "TargetField": [ "ShopIdHere", "Items" ], "Entries": { "{{ModId}}_something_here": { "Id": "{{ModId}}_something_here", "ItemId": "(O){{ModId}}_the_id_for_the_crafting_recipe", "IsRecipe": true, "Price": 100 } } }

hot gale
#

oooo awesome Ill try that

#

I was kinda close

vernal crest
mighty ginkgo
#

good lord, hopefully it's correct now

dusk mulch
#

(I don't know how to)

dusk mulch
#

Thank you!

hot gale
vernal crest
# dusk mulch Thank you!

I did find it but there's a reeeeeaaaaaally long list of Action properties (it's like 1,500 lines long) and I've already found several others that aren't on the wiki either.

But specifically for "DwarfGrave", what were you wanting? A description of what it does?

hot gale
#

Well adding the raw machine worked

#

Probably going to just stick with this since recipe unlocks at level 4 farming anyway

dusk mulch
mighty ginkgo
hot gale
#
{
            "Action": "EditData",
            "Target": "Data/CraftingRecipes",
            "Entries": {
                "{{ModId}}_MeadKeg": "388 125 725 2 726 2/Home/bh.meadkeg/true/Farming 4/" //125 Wood, 2 Pine Tar, 2 Oak Resin
            },
            "LogName": "Mead Keg Recipe Definition"
        },
        {
            "Action": "EditData",
            "Target": "Data/Shops",
            "TargetField": [ "SeedShop", "Items" ],
            "Entries": {
              "{{ModId}}_MeadKegRecipeSale": {
                "Id": "{{ModId}}_MeadKegRecipeSale",
                "ItemId": "(0){{ModId}}_MeadKeg",
                "IsRecipe": true,
                "Price": 5000
                }
            }
        },
        {
            "Action": "EditData",
            "Target": "Data/Shops",
            "TargetField": [ "SeedShop", "Items" ],
            "Entries": {
              "{{ModId}}_MeadKegSale": {
                "Id": "{{ModId}}_MeadKegSale",
                "ItemId": "(BC){{ModId}}_MeadKeg",
                "IsRecipe": false,
                "Price": 12500
                }
            }
        },
mighty ginkgo
#

"(0){{ModId}}_MeadKeg" the number 0 here should be O (for Object) instead at least

hot gale
#

Oh woops haha

vernal crest
# dusk mulch I already know what it does, I am just putting that one on the wiki, if you want...

Thanks for the offer but I can't commit to any wiki stuff right now, sorry. It's a massive undertaking and I can't afford to spend my energy on wiki things again so soon after the last time. The wiki also says that it intentionally excludes the really specialised properties, which I think many of the ones in the code probably are (including DwarfGrave - I don't know that it's going to be very useful being on the wiki since it has no real use in a mod).

hard fern
#

Ive never heard of such a property before

hot gale
#

Hmm

#
{
            "Action": "EditData",
            "Target": "Data/CraftingRecipes",
            "Entries": {
                "{{ModId}}_MeadKegRecipe": "388 125 725 2 726 2/Home/bh.meadkeg/true/Farming 4/" //125 Wood, 2 Pine Tar, 2 Oak Resin
            },
            "LogName": "Mead Keg Recipe Definition"
        },
        {
            "Action": "EditData",
            "Target": "Data/Shops",
            "TargetField": [ "SeedShop", "Items" ],
            "Entries": {
              "{{ModId}}_MeadKegRecipeSale": {
                "Id": "{{ModId}}_MeadKegRecipeSale",
                "ItemId": "(O){{ModId}}_MeadKegRecipe",
                "IsRecipe": true,
                "Price": 5000
                }
            }
        },
        {
            "Action": "EditData",
            "Target": "Data/Shops",
            "TargetField": [ "SeedShop", "Items" ],
            "Entries": {
              "{{ModId}}_MeadKegSale": {
                "Id": "{{ModId}}_MeadKegSale",
                "ItemId": "(BC){{ModId}}_MeadKeg",
                "IsRecipe": false,
                "Price": 12500
                }
            }
        },
#

Do I need 2 separate recipes?

dusk mulch
mighty ginkgo
hot gale
#

That makes sense, I guess the recipe being sold when unlocked at farming 4 is a bit superfulous

#

I'll just sell the kegs, done :p

hard fern
#

...i don't think you can sell recipes themselves

hot gale
#

The shops have recipes so I just assumed

hard fern
#

It's the item

hot gale
#

Ohhhhhhh

#

I get it

#

The isRecipe makes it one?

hard fern
#

Yes

hot gale
#

Sick

vernal crest
dusk mulch
hot gale
#

Awesome!

#

The hover text is still the torch recipe though

mighty ginkgo
hot gale
#

oh I think I see the issue

#

Maybe I don't

#

Looks like my i18n isnt being read?

#

"Description": "{{i18n: meadKeg.description}}",

hard fern
hot gale
#

"meadKeg.description": "Used to create artisanal meads from various fruits and honey.",

hard fern
#

Are you sure you changed your item id in your craftingrecipes part

#

To be the correct one

hard fern
#

Ok yeah it's wrong, i see it

vernal crest
#

Your yield should be {{ModId}}_MeadKeg not bh.meadkeg

dusk mulch
hot gale
#

Ahhhhhh

#

Well that fixed that issue

#

Recipe in shop is still fubar

mighty ginkgo
hard fern
#

I dunno, fancy stuff

#

SDVpufferwaaah i just mess around and make mods

#

Im not familiar with the code that goes on behind the scenes

mighty ginkgo
#

i mean more from a practical viewpoint, like should the ItemId point to the crafting recipe key or something else

hard fern
#

Well i. Also don't know

#

That's just how it works

#

Ask CA? πŸ˜… or if someone knows

#

Then maybe they can answer

mighty ginkgo
#

i'll test it sometime

dusk mulch
hard fern
#

I didn't mean ask him literally

dusk mulch
#

oh

hard fern
#

But more of a "well if anyone knows it's probably the one who made it"

vernal crest
# hot gale

Before I go digging some more, the recipe in the shop is still the torch?

vernal crest
#

I have a mod that adds a recipe and I have a mod that adds a shop, but not a mod that adds a recipe to a shop. So I guess I know what I'm doing now lol

hot gale
#

🀣

#

Kind of on the fence on including the recipe since it unlocks at farming 4, but I did sorta want an even faster shortcut available for players

vernal crest
#

I like being able to buy recipes personally, though I would definitely have reached farming 4 before buying it lol

hot gale
#

I need to rest anyway, decision for tomorrow

#

Thanks for the help y'all

vernal crest
#

I will figure it out while you are gone and ping you once I know (or once I give up if that's the outcome lol)

rigid musk
#

Oug I know this happens for a reason I just can't remember why .. I've done it before (and fixed it) but how I fixed it has vanished from my mind

dusk mulch
#

Does anyone know if any NPC's go to the playground?

silver sand
#

Ok, this is just an ungrounded question BUT is putting glowing things on a horse possible

rigid musk
silver sand
#

Like, make it have a config for a glowy accessory

dusk mulch
silver sand
dusk mulch
#

Well ig I have to edit some schedules now

rigid musk
#

And Eloise if you have her.. and Lavril if you have her too

dusk mulch
rigid musk
dusk mulch
#

is it allowed to edit someone elses NPC schedule for it to be compatible with your mod?

rigid musk
#

Jas' Saturday schedule

silver sand
#

When in doubt, ask the author

hard fern
#

If not then don't

dusk mulch
#

Alright, ty!

rigid musk
#

I don't wanna look for Vincent's lol but I'm guessing it's also on Saturday

dusk mulch
#

I will go ask them then

dusk mulch
rigid musk
#

You'd ask Lemurkat for that- she's from the main East Scarp mod

dusk mulch
#

Ah

rigid musk
#

I think Arknir is on hiatus right now? But Lavril is from an East Scarp expansion (literally called Lavril - East Scarp NPC (King's Raid)) that they made

#

You could probably ask them IN the East Scarp server though

dusk mulch
#

.

#

Well I already send the nexus message sooooo

rigid musk
#

tbh_seen ouh

vernal crest
#

I did not even realise he was on hiatus

rigid musk
#

I remember seeing that somewhere but I'm not sure

#

I could also be ✨️✨️ crazy(er) ✨️✨️

#

I can't say crazy in general because one look at my profile in this server tells you all you need to know

vernal crest
#

No you are right his ES server username has "hiatus" in it

rigid musk
vernal crest
#

So that whole time just now that I was trying to change my content.json in various ways to get the recipe to show up properly...it was the wrong file xD

#

I changed the folder name while I had the content.json open and instead of denying the name change, it just made a new folder and left the content.json (and nothing else) inside the old folder name.

dusk mulch
#

rip

#

welp ive done some of the map for today, as soon as i wake up tommorow it will be right back to it\

calm nebula
#

The key of the recipe should match the internal name of your objec

shadow pagoda
#

Is anyone aware if there is an existing mod that makes it more obvious that a machine (like a keg or mayo machine) is idle and isn't holding the desired item (wines and mayo using the previous machines as examples)? When I mean obvious, I mean like a color tint or a message on screen. I'm asking bc I want to make this mod, but I don't want to if it already exists

modest pumice
lucid iron
#

What does desired item mean

shadow pagoda
#

The items that the machine produces. What I said in parentheses afterwards

lucid iron
#

Output item then

#

Well as usual 2cakes u should make it if u want something different

calm nebula
#

Yeah, I made a mod like that in 1.5.6 and don't feel like rewriting it for 1.6 lol

#

even though it's easier now

#

Thanks to Data/Machines

vernal crest
# calm nebula

Oh my gosh FINALLY my recipes are in the shop, thank you Atra this was the piece I was missing! That needs way more explanation in the wiki.

calm nebula
#

A ghost of the voice of Lumi, saying just "cookies"

vernal crest
#

See I was looking at examples in the vanilla data and still stuck.

#

I was trying to follow Selph's explanation from a while back and I thought they meant that the ItemId in the shop data needed to match the Data/Object Name field, not that the recipe key needed to match it. Maybe they both need to? I don't know.

hard fern
# calm nebula

oh yeah i noticed it earlier but just?? ended up not mentioning it for some reason?

#

maybe i got distracted and forgot

vernal crest
#

I must adjust the wiki so nobody else goes through this pain ever again

drowsy pewter
#

It's the recipe key, and you can remember this because of how the vanilla recipes are set up

#

this is why i just make ID and name match

vernal crest
#

I saw that they matched but it did not click that it mattered, for some reason.

#

My object ID and name matched but my recipe key did not.

#

I think I missed it because the recipe key doesn't need to match the object name for the recipe to actually work, just for it to be sold in a shop (maybe also to have the recipe added by trigger actions etc? Haven't tried that).

rigid musk
#

Y'all ever look at your old mods and wonder how anything worked ever

lucid iron
#

Yes

#

I have many "what did they mean by this" moments except "they" is myself

languid aurora
rigid musk
#

reminds me of one time when I commented //This does on something... does WHAT me? WHAT DOES IT DO?

languid aurora
#

Finding half-written comments in my commit reviews is common for me. I think what happens is while trying to describe something I realize something I hadn't considered/handled and I float off into the ADHD wind to address it

silver sand
#

This does

brittle ledge
brittle ledge
rigid musk
#

pondering Do you think it'd be fine if I posted one of my mods that I converted to CP as a new mod instead of on the old mod page? I originally made it using Furniture Framework (i didnt know how to use CP at the time, and was also just trying to learn how to use FF)

rigid musk
#

I've been going back through my old mods to update them / make them better and just... wow

rigid musk
brittle ledge
#

If you're putting it on a different framework I think it'd be fine to put it on a separate mod page.

#

Like how some people separate their CP and AT pages.

harsh radish
#

Hello! I'm creating a custom NPC and working on sprites for custom animations related to their schedule. I have a question: How does the animation work if I want my NPC to sit in a chair? Is it handled like a normal animation, or does it require a different approach?

brittle ledge
#

It's a normal animation! You can use an offset to adjust them though if you need to.

harsh radish
#

Ok thanks a lot!

fluid shell
#

Is there a way to override game input? For example if I right click on a character with dialogue, can I prevent it from opening that dialogue and instead do something else?

vernal crest
lucid iron
#

Do you want people to lose ability to talk to NPC entirely?

#

Should elaborate on your actual goal here

fluid shell
# vernal crest I'm guessing my suggestion before wasn't helpful?

BETAS trigger actions basically work within dialogue. So when you start the day, dialogue entries can be modified... What I'm looking for is more low level. For example, I click on a character, and instead of talking to them I can add an item, change sprites, play a sound, etc.

#

Ideally I want to work outside the Dialogue logic.

lucid iron
#

C# can do it obviously but the question is why LilyDerp

#

Is the part that you "talk to an NPC" even important

#

What if you just click on them in social tab

fluid shell
lucid iron
#

You can use harmony to patch NPC do action

#

But yeah if you don't explain more on what u want I can't help much

fluid shell
#

Harmony looks like exactly what I am looking for. Thank you

tacit moth
#

I just have a question about custom shops: Is it possible to make a self serve shop like no npc has to be around for me to interact with the shop whitout Shop Tile Framework? (Just using Content Patcher)

vernal crest
#

I think you just have to not set an owner for that.

tacit moth
#

I tried that but it didn't work

#

I'll try again

#

Thanks tho

calm nebula
#

Try an owner of "None"

tacit moth
#

Thanks, I'll try

vernal crest
#

^ that was what I meant and should've been clearer with lol sorry

tacit moth
#

Like "Name": "None"?

calm nebula
#

Yeah

#

The literal string "None"

tacit moth
#

Thanks

tacit moth
#

OMG It actually works

#

Thank you so much

dire canopy
#

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

rigid musk
#

For the 'PLAYER_HAS_MAIL' GSQ is there a way to have it be an either or for two types of mail?

lucid iron
#

What is 2 types of mail

brittle pasture
#

if you need an OR condition in your GSQs use ANY

tiny zealot
#

you can use ANY to do an or operation on two queries if the... thanks selph

rigid musk
lucid iron
#

Yep use ANY

rigid musk
#

where... would I put that

brittle pasture
#

[[Modding:Game_state_queries]]

brittle pasture
#

in the Condition field as usual. It's just any GSQ, albeit one that can contain other GSQs

rigid musk
#

I knew where GSQs went just not the "ANY" itself but I see it now B) thanke

covert zodiac
#

Hello friends! I’m new to modding, I’m looking for a way to make Clint buy all artifacts instead of just a few. Would anyone be able to help me out with that?

brittle pasture
#

are you familiar with content patcher and unpacking game files?

covert zodiac
#

I am not 😬

brittle pasture
#

!startmodding

ocean sailBOT
#

Making mods can be broadly divided into two categories:

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

brittle pasture
#

!unpack and then this

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!

covert zodiac
#

Thank you!

sour sleet
#

I'm having trouble with FTM in terms of spawning hardwood stumps and logs. I've included the coordinates that I want them to spawn on but a fresh save seems to be ignoring these rules and just spawning about 7 even though i specified 1-3. The forage part of my content.json is working great but the large objects part seems to be going wrong somewhere. Can someone please take a look? https://smapi.io/json/none/88625b781ef0411aa3071bec7dbfd430

hexed siren
#

Hopefully a quick question, when I started modding, the recommendation was to include a config file with defaults. However, I'm starting to get complaints that when the mod is updated, the settings go back to default. Is there a better/preferred way to do this?

drowsy pewter
#

You should not do that

ornate trellis
#

no config file

#

the config will generate automatically the first time it runs with your mod

hexed siren
#

Ah ok, one less thing to do then πŸ™‚

tiny zealot
#

out of curiosity, where was it recommended to you to include a config.json with your mod?

hexed siren
#

It was back when I started almost a year ago, on the wiki I believe, but I'd have to hunt around to find it.

#

Tbh, after I set up my first mod with the file recommendations, I never went back to see if anything changed.

tawny ore
#

It most certainly was not a recommendation on the wiki ever, but you may have misread it

hexed siren
#

Oh, sorry, it was on a guide site somewhere but I don't have the URL. Apparently it was outdated.

tawny ore
#

Yeah, for the same reason people are complaining, that's why it's never recommended

hexed siren
#

Got it... I didn't know about the Discord when I started, so it was all hunt and try to figure it out.

tawny ore
#

No worries, this place is very helpful for tidbits like that

#

For modders that do want to share certain configs, they usually add an optional download on thier mod page rather than bundle it with the mod

silver sand
#

purr, I revived it

patent lanceBOT
violet grotto
#

After... however long I first wanted to make some form of compatibility between Farmer Portraits and Dialogue Box Redesign, I've finally managed to make a rather hacky setup today!

#

One thing I can't seem to figure out though is how to move the text.

#

I wanna decrease the width and raise it a little.

lucid iron
#

I think you gotta be in C# for that bolbthinking

violet grotto
#

I was! Been shuffling through the mod's source codes for this entire evening!

#

I managed to figure out the other elements, but I have trouble identifying the parts that relate to the dimensions of the dialogue text.

tidal stone
#

you can set up a content.json with content patcher to change only specific sprites on a spritesheet right?

violet grotto
#

I have the project open right now and could show it, if that helps.

tidal stone
#

uwu_nod
ty!

violet grotto
#

I suspect it's somewhere around here:

tiny zealot
#

you might also be able to get away with an overlay, but afaik you can't use overlay to remove pixels, so your edits would have to be strictly larger than what they are replacing

hot gale
#

That's dope wow

#

Oop I was scrolled up?

tiny zealot
violet grotto
#

Thanks! it'll doper once I resize the text.

hot gale
#

πŸ˜‚

pale pecan
#

Hey everyone! I've got a quick question for C# modding - does anyone know if there are any straightforward methods that could be used to retrieve/calculate the minimum distance between any two locations on the map? Pathfinding basically but in a way that retrieves a number of tiles that would need to be traversed as a usable value. Possibly less intensive/more efficient here would be a way of figuring out how many locations are in between Location A (let's say farm) and Location B (let's say Robin's house) but I am similarly lost on how one would do that lol

violet grotto
#

Pretty sure I can't upload it like that though, since I modified the two mods directly.

tawny ore
tiny zealot
tawny ore
#

How tightly coupled is pathfinding to NPC instances. I wonder if it'd be possible to just find the same route an NPC would take

tiny zealot
#

i don't know how the NPC pathfinder works, but you can pretty easily add a controller to the farmer that moves them to a desired location automatically, if that's your goal. let me pull up an example, one sec

tawny ore
#

PathFindController.findPath looks promising

pale pecan
#

Oooooh

tiny zealot
#

something like this:

                Game1.player.setRunning(true);
                Game1.player.controller = new PathFindController(Game1.player,
                        Game1.player.currentLocation, new Point(5, 10), 0,
                        delegate {
                            Game1.player.faceGeneralDirection(
                                    startloc * 64f, 0, false, true);
                        });```
pale pecan
#

That looks good, ty! I'm currently working on a mod I've talked about in passing here that randomly generates NPC schedules every day according to certain parameters and one such parameter I'm considering is factoring in how far a location is from their home/spawn/bed

tiny zealot
#

you would want to use your target coordinates instead of (5, 10) here, and put whatever you need in the delegate instead of necessarily facing a given direction

royal stump
tawny ore
#

I actually have a usecase for this pathfinding thing as well, only I'm more interested in the individual nodes. i.e. paths to the next warp.

lucid iron
#

With a transpiler

violet grotto
#

I don't know how to do that.

#

In fact, I don't know what most of it means.

lucid iron
#

!harmony

ocean sailBOT
#

Harmony is a framework for patching .NET code, allowing you to take any portion of the game's logic and insert or substitute your own. This gives you more flexibility and control than SMAPI helpers and events, at the cost of being typically more complex and difficult to use safely and correctly, and more likely to break with a future update of the game and/or SMAPI.

If you are trying to do something that isn't possible or practical with SMAPI alone, then Harmony is usually the solution.

For more information, refer to the following:

sour sleet
calm nebula
#

I would just do an a* of my own

royal stump
sour sleet
#

Oh that makes sense. Thanks for explaining! SDVpuffersquee

violet grotto
#

Yep. It was TextWidth that I was looking for! With some changes to TextX too I now have this:

gray bear
#

ooh that's so nice

violet grotto
#

I'm honestly surprised I managed to pull this off at all, without having read any guides or C# experience.

iron ridge
#

ooo

tawny ore
#

I'll share a well-guarded secret. Everyone here at one point in their life didn't know C#.

#

I actually learned C# mostly to code SDV mods.

violet grotto
#

But as I've said before, this won't be uploaded publically. I'd basically have to hand out the modified DLLs of both Farmer Portraits and Dialogue Box Redesign. That and I screwed around with the equations a lot, which will likely cause odditis at different resolutions.

calm nebula
#

Speak for yourself

violet grotto
#

Like PortraitX or TextWidth.

#

And with a lot of experimenting with changing values...

#

Boah, I think I've earned a tea after all that.

#

And a chocolate chip cookie...

#

And apple, because vitamins. Very important.

gray bear
#

snacks are always good

tawny ore
rigid musk
#

I am here once again asking if anyone knows anything about marriage schedules being borked for ... no visible reason

calm nebula
#

As a small language model....

rigid musk
#

and by borked i mean 'npc goes to location and then just stands there and doesnt actually move'

#

(like stands at the entry point of said location)

gray bear
#

so they just 🧍

rigid musk
#

like this yeah

#

for no reason

tawny ore
#

I don't touch NPC schedules because to me it feels like disarming defusing a bomb

rigid musk
gray bear
#

i mean you're not wrong

violet grotto
rigid musk
#

One of his schedules works properly. One of them. And it isnt even that different from the others

gray bear
#

where are my npc makers @

rigid musk
#

exploded, gone, eliminated

brittle ledge
violet grotto
rigid musk
#

Hi Tia

brittle ledge
#

Can I see one of the ones that doesn't work and the one that does?

gray bear
#

(i have summoned tia SBVMischief jk. hey tia!)

rigid musk
#

I have no clue why this is occuring, it is driving me insane

brittle ledge
#

I can think of a few reasons schedules might bork even before the weirdness that is marriage schedules, but without seeing them I'd have to guess

gray bear
#

share the schedules SMCPufferWoke

rigid musk
#

"marriage_spring_18": "930 Beach 90 4 2/1700 bed",
"marriage_fri": "800 Forest 27 94 2 MrQi_Notes_Front/2100 bed",

#

SORRY i was getting them and then i noticed that some of the changes i made to things didnt actually get saved in one of my files and ...

#

ADHD moment

#

the first one is the beach one which... as you can see from the image, does not work
and the second he goes to the forest and it does work

calm nebula
#

Please confirm you are testing in isolation

#

And especially do not have any polyamroy mods installed

rigid musk
#

Do you mean testing with only my NPC mod?

#

(and i do not have any poly mods)

#

I test only with my 'mod testing' mods (like lookup anything, UIinfosuite, event lookup, etc)

calm nebula
#

Hmmmm

#

Try a point that isn't bed

rigid musk
#

iirc all marriage schedules have to end in 'bed'

#

IF i recall correctly

calm nebula
#

Technically no

#

There is also a spot in busstop you can use

#

But let's test this for now

latent mauve
#

Is this the schedule that's getting stuck in the doorway of Sandy's Oasis, or a different one?

rigid musk
#

No the first one is the beach and the second one is the forest, the forest one does not get stuck the beach one does (and he gets stuck with all of the other ones too but Tia asked for two sc hedules)

#

changing the end point did not work u_u

#

standing there, for no reason, i hope he explodes

rancid temple
#

Where is that schedule points end coordinate?

silver sand
#

How har would it be to add a lantern accesory to my horse via cp

brittle pasture
#

most assuredly C# land

#

assuming you want it to glow

rancid temple
#

Unless someone makes a framework that lets you put accessories on horses SMCKekLmaoDog definitely gotta C# that yourself

rigid musk
#

i just made it 90 5 2 at the beach (one tile down)

rancid temple
#

Is that after sleeping?

silver sand
#

its not accesory accesory it's like a model with glowy bit

undone fable
#

okay, this is a bit far fetched but would it technically be possible to create two custom npc that require you to marry/date both of them if you want to romance them at all? (im horrible at explaining it 😭 like a "you cant have x without y" package deal. in a polyamory way) or is that kind of impossible given stardew's limits?

rancid temple
calm nebula
#

This is technically possible

#

But you need c#

silver sand
#

ok, so thats a very backburner type thing

rancid temple
#

Didn't chu make an NPC light thing...

inner harbor
brittle pasture
#

ah yes, but horse support might need to be added (I have not checked out how it was implemented)

inner harbor
#

Mateo used to get stuck there too