#making-mods-general

1 messages · Page 508 of 1

lucid iron
#

Or i suppose, I'm not sure why you have this

#

Currently greenhouse is a building so if you want to change how it looks you need to edit building data

#

If you think you have to handle the greenhouse being moved around, then no you don't

calm nebula
#

On maps that are replacers, not new maps

lucid iron
#

So would u need it for custom farm Bolb

calm nebula
#

If you make a replacer, yes

#

If you make a new farm, no

lucid iron
#

Haunted

#

The target is probably Maps/Farm_Greenhouse_Dirt then

#

You can confirm this by looking at the Content folder

calm nebula
#

There is a special one for the four corners map!

#

But seriously, make a nonreplacer unless you really love android

gray bear
#

inchresting

lucid iron
#

Why would android be a problem

#

Like im assuming meadowlands work properly there

summer spoke
#

since the event I want to write out needs to happen after a certain event, do I need to write my own event id or should I use the in game event?

calm nebula
#

Android does not support nonreplacing farms iirc

gray bear
#

i don't understand the question

summer spoke
#

mine?

gray bear
#

yeah. if you write the same id as the event you want yours to be after you're just going to override it

summer spoke
#

Right, thank you

gray bear
#

there's a condition for a player seeing an event beforehand

summer spoke
#

Would you please tell me what it is?

gray bear
#

PLAYER_HAS_SEEN_EVENT <player> <id>

summer spoke
#

thank you

gray bear
urban patrol
#

if you want it to be an event precondition though it’s different

gray bear
#

i keep forgetting how different events are

tiny zealot
#

you can use any game state query as an event precondition (there's a precondition that checks a GSQ)

urban patrol
#

yeah you need to put GameStateQuery before it if you do that

gray bear
#

yeah there's isn't a specific one for seeing an event before

summer spoke
#

okay. thank you

tiny zealot
#

there should be one for seeing a previous event

urban patrol
gray bear
#

so GameStateQuery PLAYER_HAS_SEEN_EVENT <player> <id>?

#

yeah ignore me see that ^

tiny zealot
#

either one will work! the non-GSQ one will probably be imperceptibly more performant

#

so just do whichever one makes sense to you and is likely to be easier to understand/maintain down the line

summer spoke
#

That makes sense, thank you

jovial dirge
#

Hi guys, I hope you’re doing well and that you’re giving all your heart and your mental health while creating all those little animated pixels.

hallow prism
#

can i keep a bit of mental health for myself as a treat?

jovial dirge
#

After creating maps and understanding how everything works thanks to you, I’d like to learn how to develop NPCs. Is this the only reference page? https://stardewvalleywiki.com/Modding:NPC_data

(I still struggle with the GitHub interface, so I’m not sure if there’s a dedicated page.)

Stardew Valley Wiki

← Index

summer spoke
#

this might be a dumb question, but I need to make a dialogue tree for an NPC and it's telling me to start with an Introduction, which is obvious even to me. However, I want to meet the NPC in an event. Does that mean the introduction is in the first event, or is it outside of an event?

west geyser
urban patrol
ocean sailBOT
#
Creating a Custom NPC

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

tiny zealot
summer spoke
#

thank you

urban patrol
hallow prism
tiny zealot
jovial dirge
#

thanks again

summer spoke
#

right

tiny zealot
#

1.6.16 (i think) will introduce another way to have a first dialogue line, which works largely the same way but isn't a conversation topic key limited to the first six days (krobus is currently hardcoded to act this way, and the new key will enable it for other NPCs). but that's in the future

west geyser
#

I edited a map all by myself, but uh, anyone got a link to somewhere that shows what the different path tiles mean?

hallow prism
west geyser
#

Thanks. I was having a heck of a time finding the info.

hallow prism
#

sure, wiki is full of info but sadly you need to know where they are to find them most of the time 😄

west geyser
#

Yee. Also, can I have my own trees be spawned via the tree path tiles already available/ have them only spawn specific trees based on what map they are on? Or would I have to make my own tiles for that? And how would one potentally go about that?

brittle ledge
# summer spoke this might be a dumb question, but I need to make a dialogue tree for an NPC and...

What are you seeing that's instructing you to do a dialogue tree? SDVpufferthinkblob

It's plenty possible to have the first appearance of your character in an event (i.e., they do not show up at all prior to the event), though it's a little complicated/annoying to do so. The easier way would be to just make it so the player is likely to see your event before they see the NPC (which is what I do for Jorts and Jean as an example).

summer spoke
brittle ledge
#

Ah, I think we're confused cause you called it a tree, we usually just refer to it as a dialogue file kyuuchan_nod2

summer spoke
#

Sorry lol

brittle ledge
summer spoke
#

Thank you

pulsar tangle
#

Hey guys, does anyone know how to create an invisible npc during an event? I need an invisible dummy npc in order to simulate the textAboveHead command for the farmer.

keen bay
#

Hello, good afternoon, could someone please help me if possible? Months ago I downloaded a mod that has this lampshade, but my brother deleted my Stardew and I lost the mod's name (old imageland_cry ).

subtle condor
#

hey guys, I am trying to add a simple Quest that works like the Ship Repairing. I basically want to have one tile that I can interact with, where I can 'deposit' a specific Item, like f.E. 500 Wood and after it does that, it should basically just replace a part of a map. (It should just change a broken house with a repaired one). Do I have to use C# for that or is there a simpler method to do this?

#

I guess it is a bit like the small bridge on the beach

brittle pasture
#

you can use Unlockable Bundles

subtle condor
#

I guess that would work, yeah. It is a bit of a workaround, but I'll look into that, ty

pine elbow
#

Hey everyone! I’m working on a small mod expansion and need to make a minor adjustment to Stardew Valley’s town map so I can access a new area. I added a "bridge", but whenever I enter the town it doesn’t show up, even though I can still walk across the water. So the game seems to recognize the change, but the bridge itself isn’t being rendered. I’m not sure how to fix this

subtle condor
#

How did you add the bridge? Did you make a smaller separate map file of just the bridge, that you placed over the town map?

pine elbow
#

I used the entire town map, and in the code I only set it to change the map at the coordinates where the bridge is located. Could that be the issue?

subtle condor
#

I remember I had a similar problem when I tried to add a small wooden bridge in the mountain Map. I think if you fully try to load a separate file, you have to replace the map file in the data/locations folder as well. But honestly, it is way easier to just make a separate map and parse that over the existing map XD

urban patrol
#

yeah you should use EditMap if you weren’t already

#

!json can we see your code

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.

subtle condor
urban patrol
#

locations are actually a distinct concept from maps and very likely not the issue here

pine elbow
urban patrol
#

and how are you applying your changes in json

uncut viper
#

(CustomLocations also still works, it's just very not recommended)

ornate locust
#

EditMap isn't an alternative to Tiled, it can be a way to apply edits made in Tiled

pine elbow
ornate locust
#

You should show us your code. !json

#

!json

ocean sailBOT
#

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

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

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

pine elbow
#

ah, yes, sorry

urban patrol
#

you've closed out your changes block but put a patch after it. all patches need to be inside the the square brackets of Changes

pine elbow
#

Okay, thank you so much for the help!

urban patrol
#

good luck and let us know if you still can't get it to work

subtle condor
ornate locust
#

I'm pretty sure that's exactly what UNlockable Bundles is made for

#

Every mod I've used that uses it puts a bundle somewhere else entirely, separate from the community center

subtle condor
#

Okay than I have to look further where I find the unlockable bundles XD

ornate locust
subtle condor
#

Oooh it's a separate mod. Thank you, that'll be helpful SDVpufferthumbsup

west geyser
#

I'm workin on makin files so that I have each map stored with their tilesheets in a folder for each location so I don't have to go file hunting if I wanna change any of the maps.

urban patrol
#

!tilesheetinator you should download this

ocean sailBOT
#

You can use the Tilesheetinator tiled extension to create Stardew Valley maps that work in-game without having to copy vanilla and modded tilesheets back-and-forth, rename files with a . in front of their name, edit maps only in the unpacked content folder or make symlink workarounds.

See the mod page for full installation and use instructions.

west geyser
#

Oh, that actually probably will make it much easier.

hallow prism
#

i believe you can even make custom ones now

#

so you can do something like vanilla with a yellow "!"

brittle ledge
#

You'll need to 1. Load the sprite sheet for the temp actor like you would a regular NPC (portraits not required) and then 2. Add the temp actor at the beginning of your event.

west geyser
#

Uh, so my location thing broke. I didn't even change the code. All that changed was that green rain happened.

hallow prism
#

i'm not sure what a location thing is

west geyser
#

Custom location. Sorry for not clarifying. It is bein not great atm, and I am trying to figure out why. I'mma check tiled to see if I messed it up somewhere there, cuz from what I can tell it ain't the jsons.

urban patrol
#

tiled doesn't handle location data

#

locations =/= maps

gray bear
#

did the map break?

west geyser
ocean sailBOT
#

Log Info: SMAPI 4.3.2 with SDV 1.6.15 build 24356 on Microsoft Windows NT 10.0.26200.0, with 10 C# mods and 1 content packs.

urban patrol
#

did you load your map

#

MapPath refers to an asset that's been loaded, not a filepath in your mod folder

west geyser
#

Yee, I did load it in my content json.

urban patrol
#

can i see that patch

#

usually it's good to include all relevant code when sharing jsons

west geyser
gray bear
#

where's that one make a location tutorial e_looks

west geyser
#

I followed it.

urban patrol
#

your target of your load and the map path don't match

west geyser
#

Frick.

urban patrol
#

also please prefix your location with your mod id

west geyser
#

It's just a location I'mma scrap, usin it to learn the basics of location creation.

urban patrol
#

good habits start early!

autumn tide
west geyser
#

Ok, so the map path and the target of the load match and it still can't find my location.

urban patrol
#

did you test on a new save

uncut viper
#

patch reload won't work for creating new locations if that's what you tried

#

not on its own anyway

west geyser
#

Oh. I guess I gotta reload the whole game?

urban patrol
#

"create on load" means that the location is created when a save is loaded

#

so you can't just patch reload when in the game

autumn tide
#

exit to menu and reload the game might work though!

west geyser
#

Mk. Thanks. I have it fixed now. Sorry I didn't know that the patch reload doesn't work on locations.

urban patrol
#

glad it's working!

west geyser
#

I cleared some area and added the grave thing as a test. Anyways, now I've got that figured out I'mma go take a break and doodle up my map concepts and probably switch all my actual stuff in my content patch to the mod id token.

I gotta add the mod id token to every reference of a modded item, even in the content json, right?

jovial dirge
#

Have you ever encountered this ? I can’t edit or delete the tileset. I’m completely stuck.

ornate trellis
#

did you close and open tiled yet

#

newver seen such a blank tilesheet yet tho

urban patrol
urban patrol
ornate trellis
#

thats what ive been wondering too

#

cuz i had it happen before but i had my whole tilesheets in there then, not blanks...

jovial dirge
urban patrol
#

by copy pasting, do you mean you're copying tiles from existing maps and then pasting them into other maps? yeah don't do that

latent mauve
#

I've seen that issue once (the blanks), and it had to do with someone not properly setting the size of the tilesheet (so the program thought it was 0 wide)

ornate trellis
#

yeah dont do that

urban patrol
#

yeah that's definitely causing your duplicate tilesheet issue

jovial dirge
#

ty guys

ornate trellis
#

if you really want tilesheets from diff maps then save them as a tsx file so stuff like animations etc are kept

#

then you can open the tsx in your wip map and embed it

pine elbow
autumn tide
#

!log could you post your log and json pls? sadly idk what i'm doing but the ppl who do will appreciate them LOL

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
#

!json

ocean sailBOT
#

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

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

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

urban patrol
#

and the log?

#

it looks right at a glance to me but the log will say if there's an issue

pine elbow
ocean sailBOT
#

Log Info: SMAPI 4.3.2 with SDV 1.6.15 build 24356 on Microsoft Windows NT 10.0.26200.0, with 2 C# mods and 0 content packs.

urban patrol
#

this log says you have no content packs loaded, not even your own

pine elbow
#

Wait, what? How do I fix that?

uncut viper
#

a mod cannot be both a .dll/C# mod and a content pack

autumn tide
#

do you have a manifest?

uncut viper
#

the format of your json is the content pack format for Content Patcher specifically, thats not a general SMAPI thing

#

so you must make a separate Content Patcher mod to use a content.json

urban patrol
autumn tide
#

aah okay

devout otter
#

Does your mod have a C# component, siva?

uncut viper
#

presumably that is what Sivarior.BeachApartments is

#

in the log

lucid mulch
#

The c# component did log messages

uncut viper
#

im guessing there is just a content.json inside the C# mods folder under the assumption that it would still be loaded and used automatically

pine elbow
calm nebula
#

Are you using the mod build config content pack packaging magic

brittle ledge
#

Yeah, you'll have to do what button says and split them. Expansions like Sunberry or Ridgeside are examples of mods with both a C# and CP portion if you want examples

calm nebula
#

<ContentPacks Include="your-content-pack-location" Version="$(Version)" />

#

It's an item group

pine elbow
brave fable
#

you don't need to be an expansion to have multiple components either, most of my mods add items with CP and behaviours with C#, like raised garden beds, love of cooking, etc

brittle ledge
#

If you do any other content packs (such as FTM or Custom Companions) that don't run through CP, they'll also have to be separate folders kyuuchan_nod2

urban patrol
#

that's true CP is crazy powerful and you may not even need C# depending

pine elbow
#

Yeah, but I was planning to add more NPCs, and I understood it was necessary to do that with C#.

brittle ledge
#

Nope! NPCs are generally CP only!

uncut viper
#

not at all

pine elbow
#

Okay, so I can do everything with CP?

brittle ledge
uncut viper
#

new game mechanics can not be done with CP only

urban patrol
#

from what you've said yes

uncut viper
#

but generally if its something you can see inside your unpacked folder and what you want only needs something in there to be edited to make your idea work, it can be done with CP only

#

(emphasis on generally)

autumn tide
#

there are some frameworks that you can utilize for non-vanilla game mechanics tho!

brittle ledge
tawdry light
#

Guys, I've been trying to learn how to add new furniture for the game. Can anyone tell me how to draw a texture from a file? Is it not this? "TestPainting1": "'Cool Name'/painting/2 2/2 2/1/0/-1/Cool Name/0/Mods\[CP] Test\assets\pic/true"

#

like the "/Mods[CP] Test\assets\pic"

brittle ledge
pine elbow
#

Guess I freaked out for no reason, hehe. Big thanks to everyone for the help!

autumn tide
uncut viper
#

no, the texture needs to be an asset name, not a file path

#

and its slashes cant be in the same direction

urban patrol
#

in a slash-delimited string you'll need to escape the slashes

uncut viper
#

(unless the asset name has no slashes)

#

you must Load the texture to some target and then put the target in there

autumn tide
#

ahh

uncut viper
#

escaping the slashes doesnt matter either, they must be the other direction

autumn tide
#

oh backslashes!

#

\ these guys

ornate trellis
#

we do have a tutorial on the wiki for adding furniture

urban patrol
#

i assumed discord ate the double \\

tawdry light
#

but like "\"

tawdry light
gentle rose
#

@jovial dirge sorry, I don’t accept friend requests unless I’ve spoken to the person for a bit before, but was there something you needed help with?

tawdry light
#

I tried leaving it blank and the game can draw from the default

urban patrol
#

as button said you need to load the texture in a separate patch

tawdry light
ornate trellis
#

id suggest showing us the full json but yeah did you load the texture itself?

jovial dirge
tawdry light
#

So then I just load the texture and instead of putting the address it would just be the name of the asset? like .../Cool Name/0/pic.png/true

gentle rose
#

there’s an issue in my comments? SDVpufferthinkblob

urban patrol
#

in a load, the fromfile is the path in your mod folder, but the target (whatever you make it) would be what you use for the furniture

gentle rose
#

I don’t have any new comments and none of the current ones are caused by this, but yes, you need to have an up to date version of tiled for the extension to work.

brave fable
# tawdry light So then I just load the texture and instead of putting the address it would just...

maybe an example would help:

{
  "Changes": [
    {
      // load the sprite asset from png file to game content
      "Action": "Load",
      "Target": "Mods/{{ModId}}/MySpriteAsset",
      "FromFile": "assets/pic.png"
    },
    {
      // add furniture entry with unique id using our sprite asset as a texture
      "Action": "EditData",
      "Target": "Data/Furniture",
      "Entries": {
        "{{ModId}}_MyNiceFurniture":  "'Cool Name'/painting/2 2/2 2/1/0/-1/Cool Name/0/Mods\\{{ModId}}\\MySpriteAsset/true"
      }
    }
  ]
}

note that with our sprite load change, we're using the asset name in the Target value as the texture field for our furniture, not the relative filepath in the FromFile value

lucid mulch
#

when doing the mod-dump challenge, Cursors is an hilarious asset that takes like 5min for the content pipeline to resolve as so many mods fight over it

gentle rose
brave fable
#

harmony.UnpatchAll() 🙂‍↕️

lucid mulch
#

Skipping prefix on SGameRunner.Update is a fun one, no one knows the update tick happened (including vanilla)

tawdry light
#

I was trying to figure out how to make the load command work without success

lucid mulch
#

(also I've never actually used harmony.PatchAll)

brave fable
autumn tide
lucid mulch
# brave fable `harmony.UnpatchAll()` 🙂‍↕️

in terms of code crimes, one of the ideas I had for profiler was to have a list of methods in an allowlist, and iterate over all harmony patches and harmony patch the harmony patches for added instrumentation.
ie harmony patch all patches for stuff in the main draw loop

#

is your modid TheBatteryBunch.Batteries

tawdry light
urban patrol
brave fable
urban patrol
#

but also just use cjb item spawner it's great

autumn tide
brave fable
#

you wrote 0 (zero) instead of O (object)

autumn tide
#

OH

brave fable
#

yes, O

autumn tide
autumn tide
#

YESSS TYSM YALL

tawdry light
#

I'm trying to revive my mod and the coding is so wonky. For example, I was making up random IDs when I should be using this {{ModId}} thing

brave fable
#

if you're using Notepad++, Sublime Text, or Visual Studio Code you can just press ctrl+shift+F to do a find-and-replace on your ID to replace it with {{ModId}}

autumn tide
brave fable
#

though it's worth noting that CP can't parse tokens embedded in TMX files or JSON files added to game content with Load, so those wouldn't be parsed into your actual mod id

tawdry light
brave fable
#

you could restart if you like, since as they say you learn far quicker doing something 100 times rather than doing the same thing until it's perfect. but on the other hand it's good to get something reasonably finished before doing it again

tawdry light
# autumn tide restarting can help sometimes!

But I'm already lazy as it is at updating it, at this point I'' just keep going and trying to make my code look more organized from now on. The old code is ugly but as long as it works... lol

brave fable
#

since you're just starting out i'd say get this to a working state, be proud of it, and then restart if you like with what you've learned since

tawdry light
west geyser
#

Do I add the ModId token to my textures as well?

tawdry light
#

But I do have it in my goals to go back and check if I can optimize the old code eventually.

#

Since it is still working as intended it is not a priority but we'll see.

#

Thanks a lot blueberry

#

The item has finally been added and now I know how to add more if I need to

urban patrol
brave fable
# west geyser Do I add the ModId token to my textures as well?

all asset names should be globally unique, generally meaning any Action Load Target for assets not already existing in the base game. just don't outsmart yourself by doing something like Target: Mods/{{ModId}}/Characters/{{ModId}}_Simon for an NPC spritesheet when the game is automatically trying to load something like Target: Characters/{{ModId}}_Simon hahah

#

other places may also expect globally unique names, such as item IDs, npc internal names, item query IDs, and so on

calm nebula
#

Just append a guid to all your textures (dont do this)

west geyser
#

Wait, so it wouldn't work if I went 'assets/Characters/{{ModId}}_Whatever npc'? Or is it just better practice to put the 'Mods/{{ModId}}/ect'?

brave fable
#

i mention Characters/{{ModId}}_Simon because the game automatically tries to load the npc spritesheet from Characters/<npc name here> when constructing npcs, which wouldn't start with a unique modid token even though that spritesheet asset didn't exist in the base game

west geyser
#

But what about the ModId thing in the earlier fields(?)?

urban patrol
#

there are hardcoded things the games sometimes tries to pull from. another example is maps; maps HAVE to be loaded into Maps/YourMapName, because that's where the game looks. if you tried to load your map into Mods/{{ModId}}/{{ModId}}_MyCoolMap you would run into an error because the game would go "but that's not maps"

#

what blueberry is talking about, NPCs, is another example. NPCs MUST have their portraits and sprites loaded to a specific target

west geyser
#

Mk.

jovial dirge
#

I don’t know what to put here, and it’s going to keep me from sleeping.

tawdry light
#

@brave fable Even tho the mod is working now can I ask one more thing about the example u gave just so I know in the future? In "Target": "Mods/{{ModId}}/MySpriteAsset", I can replace the "MySpriteAsset" with anything right? but lets say I need to load a different png as well, can both targets be the same or do I need to create a target for each Png as so they don't overwrite each other?

hallow prism
tawdry light
tawdry light
west geyser
#

So, would something like '{
"LogName": "Base Portraits",
"Action": "Load",
"Target": "Portraits/{{ModId}}_AU_TubbineDakota",
"FromFile": "assets/Portraits/{{ModId}}_TubbineDakota.png"
},'
work?

#

Sorry if asking too many questions.

urban patrol
brave fable
brave fable
# tawdry light <@169338783307792385> Even tho the mod is working now can I ask one more thing a...

all unique assets must have globally unique names, so two separate spritesheets must have different asset names used as Target values whenever referenced. fortunately asset names are completely arbitrary unless the game or a mod expects them to be in a certain format, such as with NPC spritesheets mentioned above, so you can write anything you want there so long as it's meaningful (to you or whoever is reading) and globally unique (such as with your {{ModId}} token)

west geyser
#

I mean, I've gotten into the habit of putting AU, just an abbriviation for the town I wanna make. Their display name is Dakota, which is a funny coincidence that happened while I was making my conlang, cuz in the alien culture they belong to their parents name them for what life the parents want for the child, like Akimil(Sacred Walk) or Kikita(Love life) or Dakota(Happy life).

urban patrol
#

cool! yeah you can make it whatever you want, i just wanted to make sure you knew you didn't have to for purposes of making it unique, since your Mod ID handles that

west geyser
#

Fair. Also, sorry if sharing too much. So, just double checking, I shouldn't put ModId token in the FromFile? or is that something I should do/best practice?

brave fable
#

FromFile is a filepath relative to your [CP] mod folder; it doesn't need to be globally unique since it's looking for an (already unique) file in your folder

urban patrol
#

it Depends TM. putting your mod id in your filenames can be helpful if you're using {{TargetWithoutPath}}, for example. but no it's not required

#

i prefixed my tilesheets with handwrittenhello.dbda_ because i loaded like thirty of them with one patch using {{TargetWithoutPath}}

west geyser
#

Mk.

vale stream
#

Hi! I've got a question about events. Is there currently any way to imitate the egg hunt but for custom events?
One of my mods has code for this, but it broke with 1.6 and I can't seem to find the cause. Thought it'd be worth it to ask if anyone has done it too (or if anyone knows why a player might freeze in place despite calling @event.setUpPlayerControlSequence(ownId);)

Any help would be appreciated SDVpufferheart

autumn tide
#

Oh, like grabbing stuff like haley's heart event?

vale stream
#

Yeah, like that!

#

I can show the code if needed

autumn tide
#

There is a command for it but I believe it needs C# to actually work

vale stream
#

Is it playerControl by chance?

calm nebula
brave fable
#

player control sequences require a C# component to function

calm nebula
brave fable
#

ah wait im blind u have one

#

please do share the code

vale stream
#

Alright, I'll upload the code somewhere and send it here SDVpufferthumbsup

#

As far as I remember, this worked fine in 1.5-- it's getting stuck now, though. The festival start music plays and the screen freezes SDVpufferthinkblob

calm nebula
#

Ahh you're doing timer stuff, I didn't touch that

west geyser
#

Is there a limit to exactly how many maps someone can add with a content patch? Also, is there a size limit to maps? Just asking for planning reference.

autumn tide
#

120x120 is the reccomended max i think!

brave fable
#

there's a technical limit of about 150x150 before things visually start glitching, but the entire Town map is 110x110 as a size reference for a practical limit

vale stream
hexed snow
#

Hey! for some reason when I give my custom npc a bouquet, her portraits are all messed up (showing mad face instead of happy) can I put something in dialogue to change the dialogue so I can set the portraits correctly? I don't think I made the spritesheet for the portraits incorrectly but I'll check to make sure

ivory plume
hexed snow
#

I made these a long while back in 1.5 so if 1.6 changed any of that it's definitely messed up lol. The other possibility is that it was just messed up from the start and I never noticed or forgot to fix itSDVpufferwaaah Either way I'll check right now!

ivory plume
#

The spritesheet format didn't change in 1.6, though there are some portrait-related dialogue changes (e.g. it won't try to parse invalid values like $harry as a portrait command anymore).

hexed snow
#

Oh yeah something was messed up. After 3 it's very wrong

#

Then it's likely that I messed it up and forgot to fix it SDVkrobusgiggle

#

Thank you!

gaunt orbit
ivory plume
#

Welcome!

peak halo
#

Where can I read about what these are?

gaunt orbit
peak halo
ivory plume
#

(Those are tile properties.)

ornate locust
peak halo
#

yeah but i cant find what an order 6 is

gaunt orbit
#

I believe it is mentioned somewhere on the page, but it's also a large, dense page so I wouldn't be surprised if you missed it

ornate locust
gaunt orbit
ornate locust
#

That'll get you to it

gaunt orbit
#

Order determines which cabin each cabin marker is for

#

So if you have 8 cabin tiles and only 3 cabins it knows where to place them

ivory plume
#

(New in the upcoming SMAPI 4.4.0: a set_verbose console command which toggles verbose logs during a session for all or specific mods, to simplify troubleshooting.)

peak halo
gaunt orbit
#

If you didn't know, you can start the game with prebuilt cabins

peak halo
#

Oh okay I get it

#

Why do some have the same order number?

gaunt orbit
#

Bc there's two types of cabin markers and each type needs its own order

#

One is for "spread apart" and the other is "close together"

#

@outer glacier

#

Thank you

peak halo
#

Does their placement matter when building a map? Like does it need to be specific?

gaunt orbit
#

No, it's just so that you can tell the game where you want them as a map author

#

Though they do need to have enough space to fit a cabin obv

#

You can have as many or as few as you want, but the number you put in will determine the maximum number of starter cabins people can have when using your farm type

#

The vanilla maps app have 3 of each type, for a maximum of 4-player multiplayer. There's a few modded maps which support up to 8 players

peak halo
#

And I need to make sure i have two of everyone I make?

gaunt orbit
#

For each spread apart one you need a close together one somewhere on the map, and vice versa

peak halo
#

Close together to each of the other tiledata for cabins?

gaunt orbit
#

No so like. When you start a save you can choose to have your cabins close together or far apart

peak halo
#

Is there a way to identify which is a cluster cabin setting and a spread apart?

gaunt orbit
#

Yeah

#

There's two different paths tiles

#

The tiledata goes with the tile

peak halo
#

They have different IDs and Orders. Does the early ID one count for cluster or spread? Like ID 66 and ID 69 are both Order 1

gaunt orbit
#

ID is internal and the game does not ever see it

#

As a I said there are two different tiles in the paths tilesheet

#

Please look at the tiles on the path layer where the tiledata objects are

peak halo
#

oooh I see

gaunt orbit
#

The tiledata is being applied to those times

peak halo
#

I have a hard time seeing the little red cabins in the squares

#

so I see what youre saying now though

gaunt orbit
#

It looks like you have the highlight layer setting turned on, I recommend disabling that. It may help with visibility

peak halo
#

Yeah I think the guide I followed said to turn that on

gaunt orbit
#

I generally do not recommend modding guides unless they're on the official wiki or the modding wiki

#

The official wiki is mostly documentation rather than tutorials but for most things it is very thorough

peak halo
#

I believe it was one of the links the guide sent me to for downloading tiled, smapi, etc

vernal crest
#

The official wiki page is the one that says to turn the highlight layer setting on

#

I just ignored it because I found it confusing

gaunt orbit
#

What really? Ew

peak halo
#

Yeah

gaunt orbit
#

Fair enough

peak halo
#

Definitely better off

vernal crest
#

If I am ever confused about which layer something is on, I use ctrl+shift+h to hide all the layers except the one I have selected

gaunt orbit
#

It is useful for making sure you're on the correct layer, but it makes it really hard to see the map

brave fable
#

again though the hotkey is H so just toggle it on and off whenever you need it, there's nothing saying it always needs to be on or off

peak halo
#

Why is there a NPC barrier at the very bottom corner of the map? Does that do anything?

gaunt orbit
#

I admittedly have not read the guide bc it came after I was already doing maps

gaunt orbit
peak halo
#

Guild say it blocks npc movement but when do npc even go down there?

gaunt orbit
#

Animals and monsters are also npcs

#

Weird, I know

#

Townspeople will greet slimes if you put them in the town

peak halo
#

But just for that 1 specific tile?

gaunt orbit
#

And your horse used to be able to act as a shopkeeper

gaunt orbit
brave fable
#

i think you mean horse SDVpethorse

peak halo
#

It just here at the bottom of the standard farm map lol

gaunt orbit
late pewter
#

There used to be an Easter Egg down there, nto sure when it got removed.

#

If you have the Building layer highlighted for that map, you may even still see the vestiges of a hidden tunnel. It may be gone by now, though.

peak halo
#

That seems to be gone

#

How do I change map properties?

#

Specifically to add something like SpawnMountainFarmOreRect

vernal crest
deep cypress
hexed snow
#

How would I go about adding a custom npc room?

latent mauve
#

A spouse room, or just a room that they live in when they're not married?

hexed snow
#

A spouse room my bad!

latent mauve
#

For a spouse room you'll need to make a TMX file of your desired room-- I suggest using one of the vanilla spouse rooms as a template so the size is correct.

hexed snow
#

I've been looking through the wiki and havent found anything. All I can think to do is load it in the content.json but I completely forgot how to do that

latent mauve
#

And then you'll set the texture for that spouse room as part of your Data/Characters entry for the NPC. 🙂

#

(If it wasn't for the spouse room, I was gonna point you at my apartments mod as a placement suggestion SDVkrobusgiggle )

hexed snow
#

your apartments mod???

latent mauve
#

I'm the Pelican Valley Loft NPC Apartments mod author

hexed snow
#

I think I'm going to look into that anyway since it seems like a decent alternative to my npc just living in a "secret" basement that's only shown in two heart events XD

latent mauve
#

Whatever works

late pewter
#

I am very tempted to add fake Artifacts to my Dubious Art Market mod, but not sure if it's possible to add a "Maximum Items donated to the Museum" as a Condition.

latent mauve
#

By Max Items donated, do you mean for the base game museum completion? Or a specific number?

tiny zealot
latent mauve
#

Poking around at the GSQs and there is MUSEUM_DONATIONS <min count> [max count] [object type]+

tiny zealot
#

if you want museum completion specifically, you can check the mail flag for the stardrop that you get for doing it

latent mauve
#

^ also that, yes

uncut viper
#

the flag is better because the max amount of things that can be donated can change with different mod lists

hard fern
#

ive learned tiled hotkey lore

teal crest
#

When I display a pig using addTemporaryActor during an event and have it walk from right to left, it spins around. Is there a way to make it the inverted image of walking left to right?

west geyser
#

Would me showing how I am planning out my maps be done here or in the mod making art channel? It isn't very artistic atm.

tiny zealot
#

anyone can cook!

#

this is more of a technical help channel. if you want to show off your work, the art channel is probably "better". but either one will do i think

brave fable
#

i post my art here all the time, frick the rules
the other channel's just dedicated art chat and help, you can post anything you like here to do with making mods

broken wagon
#

Hello I have read some modding things on the wiki but I don't know where to start.

tiny zealot
#

what do you want to make?

broken wagon
tiny zealot
#

ok. i will warn you that making an NPC is a lot of work (not especially difficult, just a lot) and it is easy to get overwhelmed

tiny zealot
#

!npc in that case, here's some NPC info to chew on

ocean sailBOT
#
Creating a Custom NPC

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

broken wagon
late pewter
# latent mauve Poking around at the GSQs and there is `MUSEUM_DONATIONS <min count> [max count]...

Basically, I want to gate certain sales so in the early game, Cheap artifacts findable very early on will be available and then as you donate more, the "Vendor" starts making later game Artifacts and discontinues the early game ones. Primarily since the fake artifacts will all have "Gunther can tell you more about this if you donate it to the Museum" as their description but obviously you can't actually donate it. The ruse is up if the player knows for sure they donated something since the description changes when you donate.
I also need to somehow give them the "Artifact" type without them actually being donatable? Is that doable? If not, I have a backup idea.

late pewter
# ocean sail

Oh, I might actually be able to make that Romanceable Bear Mod on my backburner if that NPC maker actually works. I can write Dialogue all day, it's the code for actually adding the NPC I can't do.

autumn tide
#

THE WHAT

#

tell me everything

peak halo
#

How come the Mining Farm map doesn't have SpawnMountainFarmOreRect in map properties?

late pewter
tiny zealot
late pewter
# autumn tide THE WHAT

Around the time @tiny zealot made the "Romanceable Hat Mouse" mod (Better Known as Hat Mouse Lacey) I joked that I had always wanted to make the Bear from the Maple Syrup Secret Note romanceable, and they Strongly encouraged me to do it. Sadly, it is Well outside my skill level, so it's been backburnered for a while. I'll need to research this NPC Maker.

#

If it works, I may be able to manage it.

autumn tide
late pewter
#

I worry thought it will be a buggy mess, however. Depends on how well coded the NPC Maker is, I guess.

autumn tide
#

no clue i only overhauled vanilla NPCs

late pewter
autumn tide
#

aaaa cool!

late pewter
#

That reminds me, I need to release my Oatmeal mod one of these days. I've been """Testing""" it for months now, lol.

autumn tide
#

oh shit my emote mod..

#

..but there was a slight bug so i can use that as an excuse to procrastinate more

peak halo
late pewter
#

All else fails, I can make my Bear like Krobus - They just stand around stationary all day and night and then move into your house if you cozy up to them. Barely any scenes. Minimum Viable Product and all that.

#

The single largest hurdle I see to my Bear mod is that the Bear is bigger than a standard NPC.

autumn tide
#

sighs in the injustices done to my blorbo

peak halo
#

And can I have multiple of them on the map?

tiny zealot
#

yeah, being so wide will ruin bear's pathfinding without some C# help (there is a framework that can fix it)

#

or, as you suggested, simply avoid pathfinding entirely /lh

late pewter
#

But first: Redd's Family Discount but with the serial numbers filed off.

tiny zealot
#

(DW standing outside arthur's room, but the sign says "wide npc pathfinding") that bug can't stop me because i don't pathfind!

late pewter
#

Oh gods I'm reading through the NPC maker and already in over my head lol.

calm nebula
#

It's like running a marathon

#

It's fundamentally just one step at a time

#

If you hit a wall, take a breath, eat something, and keep pressing on

#

If you start getting cramps we have cold sprays

late pewter
#

I just need to remind myself constantly that Lacey wasn't made in one day. Unless Ichortower DID somehow make Lacey in one day, in which case I fear for their sleep schedule. I for one, love sleep. Can't get enough of it. Stayed up until 3AM Making my Art market mod.

autumn tide
#

I'm still working on my NPC edits, and it's been 5 months so

#

it is a time commitment

tiny zealot
#

lol wouldn't it be nice to finish in one day! it took me 5 months from "i'm going to make this" to clicking publish on nexus

#

and then i kept working on her on and off for the subsequent two years+

devout otter
#

Some takes even much longer.

autumn tide
#

i honestly don't expect to be near release for at least another 5 months

tiny zealot
#

i'm working on her right now, for pete's sake /lh

devout otter
#

My advice is to give you small milestones to give you the sense of gradual accomplishment. Your NPC succesfully appears in the game? Milestone. Your NPC successfully talks? Milestone? Walks around? Milestone.

late pewter
#

Honestly I was absolutely GIDDY when the prototype Art Market worked, which was all the motivation I needed to decide to power through it. I'm sure once I make Romanceable Bear MVP Edition, I'll figure out how to make them more complex later, instead of trying to make the whole thing at once...

autumn tide
#

...romanceableSDVpufferfish

tiny zealot
#

(rip torn voice) if you can romance a mouse, you can romance a bear

autumn tide
#

you can romance the-

tiny zealot
#

claude are you not acquainted with lacey?

autumn tide
#

no SDVpufferwaaah

#

i should be tbh

#

but big mods scare me and i don't even play anymore SDVpetcatsad

tiny zealot
#

it's kind of you to call my mod big SDVpufferheart

devout otter
#

I thought you want as much as character story as possible!

tiny zealot
autumn tide
#

i dooo but im a coward

#

i shall download it 🫡

#

oh turns out i downloaded it but never added it to my game-\

#

your mod is now officially in my jail for mods i'm not using bc testing file 🫡

urban patrol
#

json: https://smapi.io/json/content-patcher/f575f4187b2d4bd5bdb521f76b696ff7
log w/ patch summary (look for [X] | [X] | [X] | Default | Include data/Maps.json > EditImage Maps/{{season}}_{{ModId}}_Lighthouse #1 (=> Maps/spring_handwrittenhello.dbda_Lighthouse) ): https://smapi.io/log/842e7f9fbcbe49dda598044000e8f0ca

can someone be a second pair of eyes on this? i got reports that my recolor compatibility wasn't working out of the blue, and i can recreate the issue, but i have no idea what changed. it was working before, and now it's not. the image is successfully changed when patch exporting

ocean sailBOT
#

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

urban patrol
#

in the json you're looking for the patches at lines 5 and 141

hexed snow
#

Hey guys just wondering, does anyone know why the paths dot for the spouse room I made show up? Should I just not include it at all? it doesn't show up for the vanilla spouse rooms

hexed snow
#

yeah so.........

#

thanks

#

I can't believe that was it maybe I should call it for today because holy wiff😭

fluid night
#

So if I want to edit the building data from another mod that adds a building (e.g. the premium coop and barn from SVE), what would I start with?

tiny zealot
#

speaking generally, you write your own patches to change just the bits you want, then make sure your patch runs after the relevant one from the mod in question

heavy pewter
tiny zealot
#

typically you will want to manually translate the values, since the keys in an i18n file should not be edited

vernal crest
west geyser
#

Can one make a farm outside of the normal farm with a content patcher? Asking for planning reasons.

#

Or make a place where the player can sleep that isn't a farm?

royal stump
#

I don't think any C# is needed to allow crop-growing and such in other locations, but it depends on the definition of "farm", some features are difficult to replicate or move
sleeping somewhere else is largely fine, though, you can use bed tile properties and/or allow players to place their own beds in a given location

west geyser
#

Mk. Thinkin bout possibly makin a motel or something in my alien city.

late pewter
#

Is Gunther coded as an NPC in the game? If so, where can I go read the code that runs him? If not, how do I make an """NPC""" visit you on your doorstep like he does??

lucid mulch
#

Check Data/Events/Farm

late pewter
#

I found him in Data/Characters! He is coded as an NPC but has no schedules or dialogue whatsoever, being powered entirely by events or probably Tile interactions.

lucid mulch
#

Most people are technically characters these days in 1.6, but even if they aren't you can always make temporary actors which bypasses a character/npc requirement

devout otter
#

Yar, you can check Marcello in Harvey's 10-heart event for how you can add a character to an event without having to make him an "NPC" in `Data/Characters'.

late pewter
#

Basically, I want a character to show up on your doorstep one or twice, and they sit behind a counter otherwise.

#

Basically exactly like Gunther

devout otter
#

Aa, yeah, if you want the NPC to have dialog behind the counter then the simplest way is to make a non-social NPC like Gunther.

late pewter
#

Doing more research, I think I'll have to go with the Gunther clone. The hard part is writing the event. I have never done this before. I'll procrastinate and make all the art first.

#

Step 1 complete:

brave fable
#

that's the hard part done 🙂‍↕️

late pewter
#

Reading the How to make a Custom NPC guide.... JORTS IS GAY????

#

THIS IS HOW I FIND OUT?????

devout otter
#

Where does it says that he's gay? /gen

late pewter
#

I'm noticing a lot of tone tag use, and I feel I have neglected to include one. Where do I find the list?
But no, It does not actually say that Jorts is gay anywhere, they just apparently happen to have a line for Pride under the Schedule Animations and String Dialogue section, and I had a lot of nagging feelings about Jorts that go away and his character makes more sense to me now if he's Gay. I guess it's headcanon? Fanon?? Not sure what word to use here.

hard fern
#

well considering jorts is based off a real cat 🤔

vernal crest
#

Jorts is accepting of everyone regardless of his own orientation

urban patrol
vernal crest
urban patrol
#

i’m the problem it’s me 😔

devout otter
vernal crest
urban patrol
#

correct

vernal crest
#

Did you sleep after enabling Earthy?

urban patrol
#

no, but i started a new save

#

no change after sleeping

vernal crest
#

It did load and edit the asset, it looks like from doing a search for the tilesheet

urban patrol
#

yeah i'm stumped, because the patch export shows this (those are the right colors)

#

and i double checked that that's the name of the tilesheet the map is using in tiled

vernal crest
#

And you haven't accidentally left any tilesheets in the map folder?

urban patrol
#

nope

vernal crest
#

Are you due for bed? I can just poke through the mod on my own if you need to go

urban patrol
#

i still have to brush teeth etc so i'm around for a bit at least

late pewter
#

You should be like me and stay up until 3AM working on your mods because you're having a great time! (Do not be like me)

vernal crest
#

Hm, I could've sworn I already downloaded DBD for my playthrough

urban patrol
#

too late i already do that lol

vernal crest
#

Oh no I opened the tab but then I paused on downloading things to do some compatibility patches for mods I already had lol

late pewter
#

Aww... the Event tester mod is broken in 1.6 apparently 🙁

dire kestrel
vernal crest
#

SinZ Event Tester works, so you can use that instead

lucid mulch
#

(that is SinZ event tester)

#

if it has any issues they are news to me and would be 1.6.9+ issues at a minimum as it was used to test 1.6 itself

late pewter
#

Oh no, I was looking at a different one!

#

But that one looks up to date!

vernal crest
#

Oh, I didn't realise it didn't have SinZ in the Nexus name because it has it in the folder name lol

#

And yeah I have it installed right now

vernal crest
lucid mulch
urban patrol
devout otter
#

Aw I like SinZational Scene Setup... /lh

lucid mulch
#

I have a decent collection of them

vernal crest
#

The fix

late pewter
#

I just realized there may not actually be a way for an event to occur when you've donated only 1 artifact like I intended? I may have to stick with mail?? Not seeing how the game checks how many artifacts you donated in Gunther's event. It seems to be hardcoded somehow?

fossil osprey
#

Well there are some rewards you can get after donating a certain number of artifacts, so there's surely a way (or hardcoded indeed)

gentle rose
#

if you can make mail happen you can probably make a next day event happen using a mail flag

proven spindle
vernal crest
#

There's no reason to add mail flags into it, because anything you can check with a trigger action entry you can check in the event preconditions anyway.

vernal crest
late pewter
#

How would I write that into an event, though? The format doesn't appear to have that? Unless I'm missing something? But for mail, It may be doable, I just need to read more into how to send mail.

vernal crest
#

The GameStateQuery precondition lets you use any GSQ

#

So it would be exactly the same as how you'd check it for sending mail

pulsar tangle
silk swan
#

How hard would it be to add a color wheel option for chests?

#

Guessing code is needed, but is it possible?

fossil osprey
#

Isn't there a mod doing it already? like better chests or something? You could look how they did it

silk swan
#

Man the ChestEX giant chest box looks cool, sucks it's not updated.
No I was just curious if it was possible to add one.

vernal crest
#

I'd say it's pretty likely that it'd be possible

silk swan
#

That color picker on ChestEX is actually what I wanted. Color wheel or box.

vernal crest
#

Though I couldn't say how compatible such a mod would be with other mods editing chests since you'd probably? need Harmony. But I am by no means knowledgeable about this.

deep cypress
#

Stones in the mines, are they part of any collection? They aren't in location.ResourceClumps (except the huge ones).

#

If not, how can I tell if there are stones on a certain tile?

woeful lintel
#

If they're drawn and destroyable, then they're somewhere

#

it looks like they're in Location.terrainFeatures

#

actually, maybe not, it seems like what I was looking at is the code to generate trees

finite ginkgo
#

They’re in location.Objects iirc

west thunder
vernal crest
#

Congrats!

west thunder
#

Thanks.

#

Where do I find the Discord?

woeful lintel
deep cypress
#

Thanks Leroy and EnderTedi!

vernal crest
west thunder
#

You?

#

You're kidding.

#

/lh

#

Wait, that's probably the wrong tone indicator.

#

Genuine shock, I'm experiencing.

vernal crest
#

I only have two mods and neither of them are very popular. The mods I do with Bog are all under her account and are popular because of her haha

woeful lintel
#

why do you want to join their mod author discord?

deep cypress
#

I'm in a fail brain time. How do I cast litter to Item?

cs foreach(var litter in shaft.objects.Pairs) { if(litter.Value.IsBreakableStone()) { litter.Value.performToolAction(pickaxe); } }

The performToolAction method only has one arg, I need it to have all three from Item to break the stones.

hard fern
# west thunder oh

this message is so scary every time i see people post it lol... why is it bright red and ominous

west thunder
#

Also.

#

whoever gets the reference will get another hefty prize of absolutely nothing

deep cypress
#

NVM figured it out, but that was not going to work anyways. Today is a brain lock day...

lucid mulch
short temple
#

I did a fairy mod but i am really Bad taking pictures for the nexus page, any ideas of what can i do? I still doing them on the phone

opaque field
#

I just took screenshots in game for Shane and I think something similar for my vegan fish and salsa mods 😭 screenshot with some text over it

short temple
#

I think we are on the same boat

#

Kinda annoying that i could only do the screenshots on Android and that resizes pictures as they wish when You upload them

opaque field
#

For sure. I do them on my pc which helps

short temple
#

I can't, i have a old laptop from the 2000 and it barely works it's more like a potato with wi-fi 🤣

lucid iron
#

But tbh im fine with u taking a screenshot and slapping scroll generator on it

#

Some of the Branding i enjoy include molamole and elle

short temple
#

I love elle's mods

opaque field
#

Same

vernal crest
#

If you make sure the fairy is clearly visible in the thumbnail so people can see what they're downloading, that is good. I'd advise against just uploading the files that you used for the textures the way that some people do, because they're way too small to see anything properly

hard fern
#

i just kinda... take an in-game screenshot and just slap it onto nexus. cropped if needed. im usually too lazy to make them look pretty haha. i just need functional

short temple
#

Gotta change My character or maybe do a better looking farm so i can take the pics outside, i just did a random new Game file and took the pics and i'm like uhh this should look better

#

Thanks for the ideas ❤️

scarlet warren
lucid iron
#

This "land placed" thing is actually a bit of hardcoding not found on additional farms, which is why i didn't know about it

scarlet warren
#

ah

scarlet warren
#

I didnt see their responce. What did they say?

#

Ah

lucid iron
#

You can double check your Content folder

#

If an asset is like

#

Content/Maps/Farm.xnb

#

Then you be editing Maps/Farm

scarlet warren
lucid iron
#

You can just add new farm types now

scarlet warren
lucid iron
#

Instead of replacing standard farm

scarlet warren
#

The whole point of my Modest Map mods is to make the default maps cleaner.

lucid iron
#

Whether u wanna do that is your call

scarlet warren
#

They are intentionally replacers

#

also havent figured out how to ADD maps just yet

#

Will probably do that when I make a brand new one

lucid iron
#

Adding a new map is also just doing a Load

scarlet warren
#

it is??

lucid iron
#

But instead of Maps/Farm you load to a custom target

#

Like Maps/inkubus.NewFarm

#

You also need to add the farm data + the location data to make the map actually exist in game

scarlet warren
#

and the icon on the create screen and minimap?

lucid iron
#

Yes that's part of the additional farm data

#

Map is sort of similar to texture in my mind, i.e. a kind of artistic asset that is just loaded

#

you need data around it to actually give it purpose in game otherwise it's just never accessed

opaque field
#

I know BETAS has a "passed out" trigger but what if that but also each time added an increment stat so people could be like "yo you've passed out 10 times I beg you take better care of yourself"? Could you do that with BETAS or would that need C#?

hard fern
#

hm i wish it were possible to display bust sprites above the dialogue box for a conversation between two npcs... i know i can do it but only one at a time...

opaque field
#

ooh wait maybe use the trigger to add the increment stat and then have separate trigger actions that check how many points they have like {{ModId}}_PassedOutStat, and then trigger dialogue via conversation topic?

lucid iron
#

Yeah u can hook the betas passed out to increment stat

opaque field
#

WHOO

#

now the harder part, figuring out how to apply that to the player dying+where they died

#

maybe to start do something to HospitalEvent? if HospitalEvent add Trigger then use trigger to add CT?

calm nebula
#

Does the TriggerAction fire at the death location or the revival location (honest q)

woeful lintel
#

If GameLocation.startSleep is called but Game1.player.isInBed.Value is false, then the game dims the light and play the player sleep animation but doesn't trigger newday until the player changes location

#

so I tried to just set Game1.player.isInBed.Value = true; before calling the sleeping question dialog (copied from GameLocation.performTouchAction) to make FF's custom bed sleep spot feature work but it somehow turns to false before GameLocation.startSleep according to a debug prefix I made.

lucid iron
#

Do u also call the map action sleep at any point?

woeful lintel
#

I let the location handle everything by just doing this:

                        location.createQuestionDialogue(
                            Game1.content.LoadString("Strings\\Locations:FarmHouse_Bed_GoToSleep"),
                            location.createYesNoResponses(), "Sleep", null
                        );
lucid iron
#

People used that for NPC house player sleepovers before so it should work

woeful lintel
# woeful lintel I let the location handle everything by just doing this: ```C# ...

and just with this, it works fine but ONLY IF the custom sleeping spot is roughly where it would be in vanilla, so I assume that some flag is set (maybe player.isInBed) somewhere in the code but I can't find it~~, but if I set Game1.player.isInBed.Value = true; before calling location.createQuestionDialogue, then it somehow turns back to false before GameLocation.startSleep is reached ?!~~ that was on me somehow, still don't know why my collision code was faulty...

#
[01:24:02 DEBUG Furniture Framework] player is in bed?, True
[01:24:03 DEBUG Furniture Framework] StardewValley.Locations.FarmHouse.startSleep: is player in bed? False
opaque field
woeful lintel
#

oh, Farmer has isInBed.Value = base.currentLocation.doesTileHaveProperty(base.TilePoint.X, base.TilePoint.Y, "Bed", "Back") != null || sleptInTemporaryBed.Value;

#

I'll look at that

calm nebula
#

Have you looked into how the tent works

woeful lintel
#

no

eager tree
#

Hi, I have a doubt, mostly about Nexus instead of mods. Is Nexus using AI on the mods's images? I can't tell if it's just the authors's own edits or if it's Nexus' doing, or something else (maybe Opera?). I'm not even sure it's AI, but it looks like it?

I've seen a few more with such rendering, and I just wanted to know (I'm not trying to attack these particular creators if they're indeed using AI btw). I have the AI tags blocked, so I know I shouldn't be seeing too many AI-related mods, but I'm seeing so many of these kind of edited cover images

I didn't see any news about it, so I'm a bit lost

woeful lintel
# woeful lintel oh, `Farmer` has `isInBed.Value = base.currentLocation.doesTileHaveProperty(base...

fixed with this postfix to BedFurniture.DoesTileHaveProperty:

if (layer_name == "Back")
{
    if (__result && property_name == "TouchAction")
    { __result = false; }
    if (
        !__result && property_name == "Bed" &&
        tile_x >= __instance.TileLocation.X && tile_x < __instance.TileLocation.X + __instance.getTilesWide() &&
        tile_y >= __instance.TileLocation.Y && tile_y < __instance.TileLocation.Y + __instance.getTilesHigh()
    )
    {
        property_value = "T";
        __result = true;
    }
}
woeful lintel
tiny zealot
woeful lintel
#

what I mean is that it can't be a Nexus filter

tiny zealot
#

nexus does sometimes over-compress images and crush the detail out of them (not slop, just webp), but it used to be worse before a bunch of us complained about it

lucid iron
#

Hm that doesn't really look like AI and instead it's adobe illustrator vibes

#

It looks pretty intentional on author side to do the vectory vibes

#

And earthy interior 2nd image is the source that got vector filtered

#

A search for 14790 shows that it's had this thumbnail since 2022

woeful lintel
#

oh yeah, you're right, this has the vibes of a vector image

urban patrol
lucid iron
#

Oh yeah leroy i am working on new technology™

urban patrol
#

tbh idk how that even happened because i thought i deleted that folder and was using tilesheetinator at the time

lucid iron
#

@woeful lintel it is a gui for making mods such as furniture

#

I only did cp vanilla furniture + wallpaper output rn but I did try to oop things so that implementing other kinds of output is viable

woeful lintel
#

holly shit

#

(pardon the language)

lucid iron
#

You can look at the spaget I'll try to organize my interfaces better kyuuchan_run

woeful lintel
#

I'm not touching that until spring, but that is awesome!

lucid iron
#

Yeah I also need a break from UX fiddly lmao

woeful lintel
#

although I don't know If I'll have the motivation to do any UI work with C#/xna

lucid iron
#

But yes maybe we can do a FF plugin for it

#

Oh this is with stardewui

woeful lintel
#

haven't looked at this yet, maybe it's manageable

lucid iron
#

The way i set it up is that u get the texture draggy stuff for free via an include

#

And then u do the right side inputs

woeful lintel
#

although I'll work on actually finishing FF3 when I'm done with my master, I'll look into this after, it's really cool!

lucid iron
#

Plus the c# model behind it ofc

#

It means the furniture mode and the wallpaper mode can share a good portion of things

woeful lintel
#

I wish I could make UI for stardew with Godot... I would be unstoppable

lucid iron
#

I think I'll just release it as is for basic CP furniture use cases Dokkan

#

Some of the assumptions I made on handling of assets is a little tied down to content logics bc i want to make this useful for many kinds of cp mods

calm nebula
#

Chue do you look at xmldocs for this

lucid iron
#

I should but I think trinkets sucked all fun of xmldoc out of my body

#

But yeah I'll at least doc the stuff that's meant to be maybe implemented by other ppl

formal crown
#

In case I don't know, are there any utility or extra features mods for buildings? SDVpufferlurk

lucid iron
#

Yeah kind of?

formal crown
#

(modding-wise, not user-wise)

lucid iron
#

But you gotta be more clear

#

Buildings can use tile properties so it gets access to lots of things for free

formal crown
#

I'll have to meddle with DrawLayers (once again)

lucid iron
#

Ah I did a lot of that in mmap

#

But only for stuff vanilla doesn't cover

#

Here's what's in there rn

formal crown
#

I want to have two "skins" for a sawmill building, where one has its watermill at left and one for at right

lucid iron
#

Oh that one u can do with just vanilla i think?

latent mauve
#

Is it just for visual or is there going to be a location based input/output?

formal crown
#

Visual

lucid iron
#

Ok drawing is too hard actually so I'll try to explain in words

#

Firstly your entire building needs to be on 1 texture, don't use the drawlayer Texture field

calm nebula
#

Becuase I'm terror lol

lucid iron
latent mauve
#

(you can use the same vanilla behavior as the cabins for building skins if it's just visual)

lucid iron
#

I still have to make decisions about how to enter the data UX wise

lucid iron
#

So imagine you have a big draw layer rect but skin 1 draws the wheel on left

formal crown
#

Is there a way to make an animation change positions based on which skin is used?

lucid iron
#

And skin 2 draws the wheel on right

#

That's the easiest approach here Bolb

formal crown
#

I didn't see any on the wiki, but maybe I missed something

lucid iron
#

In the scheme i described you dont change the position on the actual draw layer

#

You r just make a big mostly transparent texture and change the position within the big box you gave yourself

formal crown
#

So the SourceRect points at an empty space, and the whole thing is one or two or whatever DrawLayer?

lucid iron
#

I did want to make the mmap stuff conditional on what skin but it is kind of pain

latent mauve
#

Its not as simple as a "only use this DrawLayer if the skin is this type" because there isn't a GSQ/condition for that AFAIK

lucid iron
#

I was only talking about the draw layer itself

formal crown
#

The watermill is not static

lucid iron
#

Yeah but isn't the animated parts a draw layer?

formal crown
#

Yes

lucid iron
#

Mhm so i was only talking about that part

#

Let's say your wheel is like i dunno 32x64 big

#

And building is 128x64

#

We'll put the wheel animations beneath the building, on the same png for both skin

#

If u make the draw layer use source rect 0 64 128 64 and 4 frames, you can have skin 1 put the wheel only on 0 64 32 64, 0 128 32 64, etc

formal crown
#

Ohhh

lucid iron
#

For skin 2 you'd have the wheel on other side 0 96 64 32, 0 96 32 64, etc

formal crown
#

So it'll always draw both "wheels", but because of the placement one is always going to be empty space

lucid iron
#

Yar

tall raft
#

Wrong chat, sorry 🥲

lucid iron
#

I pulled the numbers out of my hat but that's the idea

unique tusk
#

ALR Got burnt out for like,,, a couple months BUT finally picked up my modding project again and immediately got stuck so chat how did I mess this up?? 😭

#

Im not getting any red text it's just none of the dialogue I wrote is appearing in game ksjgdkasj

formal crown
#

So you can set a seperate SourceRect for the second skin?

lucid iron
#

No you have to set the same source rect

#

But that's why u make it big

#

So that u can just put the wheel where you need it on the texture

#

The vanilla limitation is that all skins have the same set of draw layer data, and the only thing that can change is the Texture (as long as drawlayer.Texture is null)

#

That is why we r doing some gymnastics to give us more room to work with on texture

formal crown
#

If both have the same texture and same rect, how is one of the wheels going to be empty?

lucid iron
#

By having that area on the texture transparent

#

We r being intentionally inefficient here Bolb

formal crown
#

Or do you mean having two Textures with almost the same features?

lucid iron
#

Well you have 2 textures skin 1 and skin 2 yes?

#

That part isn't negotiable, it's how building skins work in general

formal crown
#

Well I could have yes

#

Ohh so. its this:

lucid iron
formal crown
#

Its ugly since it only took 30 or so seconds

unique tusk
#

Me, who has no idea how to use a trigger action: uhmmmm

lucid iron
formal crown
#

Thats. Smart SDVpufferwow

lucid iron
#

Although bc it is going to be animated you probably wanna move the wheel down

#

So that the static building gets it's own rect

#

And u draw the animation for wheel on the rects beneath

formal crown
#

And I just expand to the side when I do seasonal variations, yes?

lucid iron
#

Yep

formal crown
#

Thank you chu, you're a genius SDVpufferwow

lucid iron
#

I should probably look into making conditional draw layers happen tho

#

It was something i suggested few months back but it's probably not happening for 1.6.16

formal crown
#

Yeah, probably vanilla wouldn't use that so nope

lucid iron
#

This is a bit of a detour from your actual problem though

#

I think what you need to confirm is whether your CT is actually set

unique tusk
#

Hmmm I think I'm overwhelmed and am gonna come back to this problem later 😭

molten helm
#

hey, im writing a remake of stardew valley for the 3ds as a hobby project, and i was wondering, do the maps hold data for buildings at all or are those loaded all through code, the picture seems to make me think that all object positions are defined in code but i may be wrong

unique tusk
#

Tyy tho for trying to help!!

lucid iron
molten helm
#

also what are all those tiledata thingies in the map editor, i get some but for example these:

formal crown
#

(Farmhouse scary SDVpufferyoba)

lucid iron
#

Those r for grass

lucid iron
#

I think it's probably more useful to understand what you want to do exactly though

molten helm
formal crown
#

Grass, debris, trees, bushes and MP cabins

lucid iron
#

If the thing you are making isn't going to be an sdv mod, you don't have to be tied down to sdv shenanigans

molten helm
#

i know, im trying to keep the code structured similarly to the original though to maintain it in order

lucid iron
#

If the thing you are making is meant to be a 1:1 port then I'd actually look at whether it's viable to get some flavor of Linux onto 3ds

molten helm
lucid iron
#

[[modding:maps]]

molten helm
lucid iron
#

This page explains what these map things mean in detail

molten helm
#

alright thanks!

formal crown
#

(Oh, I missed stumps and boulders)

molten helm
#

i can show my progress though, i got all the maps and tilesheets imported and can load them on 3ds

lucid iron
#

Retuning to your original question, there are objects added in C# for various purposes

#

But it's saved to the save file just like if a player went and placed an object

#

Or built a building

#

You can look at the GameLocation.objects and GameLocation.buildings for this

#

They get serialized

molten helm
#

ill do that

#

i wonder which ones worse, C# or C++

lucid iron
#

C++

formal crown
#

(C++)

molten helm
#

im setting myself up for failure

lucid iron
#

This isn't an opinion :)

molten helm
#

before c++ i was writing all my 3ds homebrew in C which was even worse

lucid iron
#

C# is a pretty normal high level oop language with the usual nice things like garbage collection and exceptions instead of segfault

#

C++ likes to pretend to be this SMCPufferjail

molten helm
#

this is gonna be a long year lmfao

#

i wonder if i would be even able to release it if i ever finish it

lucid iron
#

Probably not if u use mr ape's assets

gaunt orbit
lucid iron
#

Although i doubt CA would actually pursue but historically fan games never win the lawsuit blobcatgooglyblep

molten helm
gaunt orbit
#

The 3ds is really underpowered though so it probably wouldn't run something like stardew very well

lucid iron
#

Well there was official sdv on ps vita

#

Was the vita stronger than the 3ds?

formal crown
#

It was stopped updating at what, 1.1.0?

gaunt orbit
#

¯_(ツ)_/¯

molten helm
gaunt orbit
#

Nintendo always has weaker hardware. They sell based on gimmicks and 1st-party games

lucid iron
#

Good luck and remember to have fun wew

#

You may want to start with the 32 bit compat branch

molten helm
#

hehe

#

some maps are positioned poorly thats why they are black

#

ive always thought about stardew being THE dual screen game

#

it would go on a dual screen so well, inventory on the bottom screen

iron ridge
#

ooo 3ds stardew

tiny zealot
tiny zealot
formal crown
#

fwiw, before:

#

And current:

tiny zealot
#

the way base stardew works is all the music is .wav files (huge), and they are all loaded fully into memory at game start. so you will need to essentially reimplement the audio system, and almost certainly re-encode the music files

#

of course you're already rewriting the whole thing in C++, so reimplementing is not a concern per se

lucid iron
#

What does actual 3ds game do for the musics

formal crown
#

(That rail and white bench are layering shenanigans, but I don't remember the exact problem with them)

#

The Log and that half-circle are working animations iirc?

tiny zealot
lucid iron
#

I would if this was still massive improvement for devs coming from like gba or something

tiny zealot
#

like back on the super famicom you would load up the (essentially midi) data and hand it off to the sound chip and that would do all the music playback, and leave your ram and cpu free to do the game parts

#

i don't remember much about how the gba does it, if i ever knew

molten helm
gray bear
#

is there a framework that adds like, a Skins feature but for furniture? besides AT, i should clarify

molten helm
#

Actually it might have been streaming from the files not through ram

#

Opus format

#

Yeah

lucid iron
tiny zealot
#

thinking once again about this comment, apropos of nothing trust

molten helm
#

I mean isnt there a harvest moon for gba

#

Close enough

tiny zealot
#

yeah, but if you just play that then you don't get to find workarounds for all the insane technical limitations you would surely encounter

molten helm
#

I think the gba has an arm7 processor

#

And the 3ds has an arm11

tiny zealot
#

gba is arm7tdmi, yes

molten helm
#

And ds has an arm9

subtle condor
#

Hey guys, I am struggling to get an event starting and I don't really know why. So I load a jsonfile with the event details into the Data/Events folder with the name of my own custom map. I am just testing, so, so far the whole json file only contains this: {"{{ModID}}_ShipRepairing/": "continue/50 50/farmer 50 50 2/skippable/pause 5000/end"}. Normally, the event should play as soon as I step onto my own map, right? Did I do anything wrong or is there a different way to initialize an event?

lucid iron
#

You can't use tokens like {{ModId}} in a Load

subtle condor
#

Oooh, okay, yeah makes sense. But it still doesn't work though

#

I don't need to initialize an event, right? It should just start as soon as I step into the location, unless I add preconditions of course

urban patrol
#

what’s the target of your load

subtle condor
#

Just Data/Events. Should I write Data/Events/the name of my map?

urban patrol
#

yes

#

although i recommend loading a blank and then using edit data instead so you can use tokens

gaunt orbit
#

Important- it should be the id of your location, which may not be the same as the name of your map

subtle condor
# urban patrol yes

yeees, finally it works, thank you SDVpufferheart sometimes it is just as simple as that XD

subtle condor
uncut viper
#

also for future reference there is no such thing as "loading to a folder" like your initial assumption. Data/Events, when it comes to assets you target, is not a folder, its just an asset name that happens to look like a file path

#

but is not a file path

gaunt orbit
#

I figured I would mention it bc people get maps and locations mixed up a lot

urban patrol
#

yeah all very good points

subtle condor
subtle condor
#

I also have another problem that I thought I found a solution for, but I didn't XD Is there a way to make a token with CP negative? I am trying to do something like "!HasSeenEvent:hostPlayer": "{{ModID}}_ShipRepairing, but it doesn't work with an exclamation mark. I tried something like "query: '{{HasSeenEvent:hostPlayer}}' = '{{ModID}}_ShipRepairing'": false, but I don't think that is designed to do what I am looking for XD

#

Not token, I meant condition

#

Or I guess a condition is a token as well XD

lucid iron
#

You can do "token |contains=value": false

gaunt orbit
#

You can't use a bang to negate conditions

subtle condor
subtle condor
formal crown
#

Soo, if one works, the other breaks SDVpufferflat SDVpufferchickcry

lucid iron
#

What does ur textures look like now?

formal crown
#

Right:

#

I managed to stick the wheel back on the right, but now the woodlogs wont appear

#

If both of their SourceRects are the same, the wheels will be half on soil and half on water which defeats the point

lucid iron
#

Oh do u need it to be adaptive to where the water is?

formal crown
#

I mean the wheel's purpose is visuals

lucid iron
#

Yeah i mean, do u want to let people change the skin as they please

#

Or auto change skins for them

formal crown
#

I didn't think it'd be a variable so that's on me

#

I suppose it means sacrificing the logs at the right side (they aren't a big deal, they were there just to make the door's side logically impassable)

lucid iron
#

Are the log pile a draw layer? or part of the base source rect

formal crown
#

Part of the source rect

#

I can seperate them if its needed?

lucid iron
#

Nah i think you just need to make the base sourcerect 1 tile wider probably

#

If u want to send me what you have I can poke around and try to figure something out

#

Will get back to u in like 8hrs cus theoretically at work rn

formal crown
#

That'd be fine, it's 12 am SDVkrobusgiggle

lucid iron
#

Wow all of vpp kyuuchan_run

formal crown
#

Well I'm lazy :lmao

lucid iron
#

What is the keyword to search for?

formal crown
#

The data file is in: assets > Data > Buildings > New.json
for everything else Sawmill is enough

formal crown
lucid iron
#

Yeah the plan is I just min repro the sawmill

fervent siren
#

Hey I'm actually looking for a mod I used to have but can't find anymore. Does anyone know or remember the Wetlands scarecrows that were bird ect?? Thank you! Much appreciated

calm nebula
ivory plume
#

@polar escarp Hi! A comment on the Seasonal Hats page today reminded me that I never actually released the Fashion Sense integration, so I'm working on that now.

I noticed a few quirks when setting the data through Content Patcher though.

Given this code:

// patch A: add basic hat data
{
    "Action": "EditData",
    "Target": "Data/PeacefulEnd/FashionSense/HatData",
    "Entries": {
        "{{ModId}}/Hat/{{IdSuffix}}": {               // "ParadigmNomad.SeasonalHats/Hat/DeerAntlers"
            "Author": "ParadigmNomad",
            "PackName": "Seasonal Hats",
            "PackId": "{{ModId}}",                    // "ParadigmNomad.SeasonalHats"
            "FromItemId": "(H){{ModId}}_{{IdSuffix}}" // "(H)ParadigmNomad.SeasonalHats_DeerAntlers"
        }
    }
},

// patch B: disable color tint
{
    "Action": "EditData",
    "Target": "Data/PeacefulEnd/FashionSense/HatData",
    "TargetField": ["{{ModId}}/Hat/{{IdSuffix}}"],    // "ParadigmNomad.SeasonalHats/Hat/DeerAntlers"
    "Fields": {
        "BackHat": { "DisableGrayscale": true },
        "RightHat": { "DisableGrayscale": true },
        "FrontHat": { "DisableGrayscale": true },
        "LeftHat": { "DisableGrayscale": true }
    }
}

Issue 1: duplicate entries
Fashion Sense seems to duplicate the entries? For example, the content pack adds an entry with key "ParadigmNomad.SeasonalHats/Hat/UnicornFlowerCrownSpring", but exporting the asset shows both that entry and a copy with the key "ParadigmNomad.SeasonalHats/Hat/Unicorn Flower Crown (Spring)".

Issue 2: null field handling
The [Back|Right|Front|Left]Hat fields are null before patch B edits them, but:

  • If we remove patch B (so they stay null), Fashion Sense injects the default values. The hats work fine in-game, but the color tint breaks their design.
  • If we keep patch B (so the fields are initialized to the default value), Fashion Sense skips setting the inner default values. The hats are invisible in-game.

Changes in the final asset when patch B is applied:

- "HatSize": { "Width": 20, "Length": 20 },
+ "HatSize": null,

- "StartingPosition": { "X": 0, "Y": 60 },
+ "StartingPosition": { "X": 0, "Y": 0 },

- "DisableGrayscale": false,
+ "DisableGrayscale": true,

Does the content pack need to manually override HatSize + StartingPosition with the defaults in order to override DisableGrayscale, or is that a bug?

Issue 3: wrong texture used
Seasonal Hats has five versions of each hat: four static versions (spring, summer, fall, winter) and an auto-seasonal version. However all the variants for each hat somehow use the texture for the spring variant.

I can send you a zip of the content pack (and Content Patcher 2.9.0 which it needs) if you want to try it in-game.

lucid iron
autumn tide
#

helloooo whats that mod you can use to cheat items into your inventory?

#

testing :(

lucid iron
#

cjb item spawn?

#

Besides that i also use player_add

autumn tide
#

hmm okay ty ty

autumn tide
#

gonna return with more code conundrums shortly once my computer stops being bitchy SDVpufferthumbsup

ocean sailBOT
#

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

autumn tide
#

OH I GOT IT I FORMATTED THE ACTIONS KEY WRONG

#

okay test time SDVpufferwoke

polar escarp
# ivory plume <@433956433181147136> Hi! A comment on the [Seasonal Hats](<https://www.nexusmod...

Issue 1 is due to Fashion Sense using the item's name (extracted FromItemId) . It really should be using the given entry instead, I will get that corrected (so ParadigmNomad.SeasonalHats/Hat/UnicornFlowerCrownSpring would be the correct one).

Regarding Issue 2, definitely a bug! I will get that fixed so those two properties are set if they are not given (instead of only setting if the entire model is missing). That way you can set DisableGrayscale and still use the default position / size values.

For Issue 3, I will need to take a look at that content pack and test to see why the texture is not displaying correctly.

autumn tide
#

hellooo got more questions, does prefixing a condition with ! to make it negative have an equivalent for CP when token things?

lucid iron
#

Yeah it's the |contains thing mentioned earlier

autumn tide
#

OH YEAH

#

tyyy

ivory plume
# polar escarp **Issue 1** is due to Fashion Sense using the item's name (extracted `FromItemId...

Here you go!

Repro steps:

  1. Install these mods.
  2. Load a save.
  3. Activate the hand mirror.
  4. Navigate the Deer Antlers, Elk Antlers, Flower Crown, Mossy Flower Crown Elk Antlers, or Unicorn Flower Crown options.

If you have CJB Item Spawner, you can search paradigm to find the original items to compare their sprites.

The Fashion Sense edits are in patches/add hat with season.json, which has a workaround for the null field issue:

// HACK: when overriding `DisableGrayscale`, we need to explicitly set `HatSize` and `StartingPosition` to their default values.
// These fields are null at this point, so this will initialize them to empty data models.
"BackHat": { "DisableGrayscale": true, "HatSize": { "Width": 20, "Length": 20 }, "StartingPosition": { "X": 0, "Y": 60 } },
"RightHat": { "DisableGrayscale": true, "HatSize": { "Width": 20, "Length": 20 }, "StartingPosition": { "X": 0, "Y": 20 } },
"FrontHat": { "DisableGrayscale": true, "HatSize": { "Width": 20, "Length": 20 }, "StartingPosition": { "X": 0, "Y": 0 } },
"LeftHat": { "DisableGrayscale": true, "HatSize": { "Width": 20, "Length": 20 }, "StartingPosition": { "X": 0, "Y": 40 } }

Let me know if you need anything else!

lucid iron
#

The normal "token": "value" form is basically "token |contains=value": true

autumn tide
worldly wadi
#

Is it possible to spawn monsters on a custom location with content patcher or do I need FTM?

brittle pasture
#

need FTM or SpaceCore yes

worldly wadi
#

Oh oki ty

#

what abt custom monsters? I mean, new monsters?

autumn tide
#

item extensions can do monster spawning upon item use too!

brittle pasture
#

you can have monsters that are reskins of vanilla monsters with custom drops and stats

#

if you want new behavior that's C#

#

but bats/mummies/duggies/crabs/dinos/shadow guys/etc. should cover all the basics

autumn tide
#

(eavesdropping bc also curious)

worldly wadi
#

Like, I'm planning to add a new monster with new sprites and with an existent behavior, it only attacks, doesn't do anything new, is this possible with only content patcher?

brittle pasture
#

with content patcher and a framework, yes

autumn tide
#

hmm, maybe could monster variety be used for that?? idk, i haven't messed with it yet

#

to nexus i go!

brittle pasture
#

monster variety adds variants to the vanilla monsters

worldly wadi
brittle pasture
worldly wadi
brittle pasture
#

you want to spawn new monsters in new locations, that's those two mods

autumn tide
brittle pasture
#

as I mentioned, use MV if you want your monster to occasionally replace the ones the game spawns in the mines

#

just to clarify since I can be unclear at times

autumn tide
#

yeah, it does seem like effectively a fancy reskin thing that enables custom loot and specific times for said reskin to apply, BUT it does seem like you might be able to add vanilla monster to a location and mess around with their sprites/drops, and then only make that variation apply when in your custom area?

brittle pasture
#

that would, for a third time, be FTM or SpaceCore

autumn tide
#

oh, to spawn the monsters or all of it?

brittle pasture
#

all of it

autumn tide
#

gotcha gotcha

lucid iron
autumn tide
#

ohhh

brittle pasture
#

yeah I implicitly said that but didn't want to say it conclusively since I don't own the mod

lucid iron
#

it can add skin to monsters spawned by other means but spawning is not it's job

autumn tide
#

oh yeah, I know that bit

lucid iron
#

that is how bog/aba chose to use it

autumn tide
#

i can suck at phrasing things at times-

vernal crest
#

We have had to make it very clear on the mod page that it doesn't affect how many monsters spawn because we keep having comments saying that it's causing too many/not enough monsters to spawn and I'm like "no you're imagining that" lol

autumn tide
harsh bobcat
#

How do question dialogues work, and more specifically how do action question dialogues work (such as backpack upgrade, or house upgrade)? Like, those are questions that specifically do not have a followup; but if I try to not add a reaction with $r, it doesn't work

steep cloud
#

Hii so im pretty new to modding in general..

after looking at things for a short while, i figured out what I wanted to do probably? has to be done with harmony, but I wanna just ask here to confirm my thoughts
If im modifying the game mechanics such as friendship/farming/combat, i need to use harmony right? smapi doesnt support this?