#making-mods-general
1 messages · Page 259 of 1
for fog specifically you can probably just copy the MineShaft code
and just dont draw it in the AboveAlwaysFrontLayer method
Cloudy Skies doesn't have anything that would render beneath the world, at this point. Not really the point of it.
OK, thanks for letting me know that, I will still be looking to utilize it for an over-screen effect after the player crosses to the next map
Hmm. Wonder if I should make location specific layer overrides.
I don't know enough about this to know how to follow up on this advice
it was directed at chu
oh gotcha
i shoulda said sorry
np
Oh yeah i do that for light rays already
why do ur light rays use fog code
It do draw in the draw above always front
i was talkin specifically for drawing parallax fog below the map layers tho
Ig i can just, reverse patch bathhouse fog code too yes
thats steam not fog smh /j
For below i was gonna use Game1.background
Like make subclass of that and set it on warp in
note that optional dependancies are pretty cool, like having a hasmod to adds specific features
After who-knows-how-long in the making, I have finally released my Fashion Sense pack: Adventurer's Armor and Clothing!
This pack offers a whole lot of modular clothing items, which you can combine and color to your heart's content.
I offer you robust plate armor for knights, sturdy leather hats for cowboys, fancy attire for nobles and many other different accessories to adorn your outfit for the next adventure!
https://www.nexusmods.com/stardewvalley/mods/32523
Whew, finally got that ouot of the way.
excited about this one!
Congrats on the release! These look amazing, but I’m sure you’ve gotten that a lot. 
It took way to long to click in my head that you wrote the mod lol. Sorry I'm a little slow on the uptake, and thank you for making this, I hope I have enough brains to use it properly.
I think I may add a few more pieces to that pack later, but I'm gonna shift my focus on Visual Enemy Variety again.
Bats will be the next enemy I'm gonna make variants for.
Hell yeah! Congrats! Can't wait to use this :D
Hmmm, I might just do that.
Though I didn't really add scarves.
It's more like bandanas and collars.
ooh, more hats to add support for
I think I'm gonna have to disappoint you.
This pack doesn't actually include any hats. It's mostly accessories, so that folks can easily mix and match them together.
aw heck
Unless you can somehow detect FS accessories
i certainly could. i already detect hats
Well, now that's an idea, that wouldn't be too hard to implement
might be a down-the-road sort of feature though (the hats, not you, harrison)
Lol. It does work for me, too, though
Well, if you ever pull that through, I can provide you everything you may need for that.
(I don't know if you need anything for that)
i probably don't need anything from you about it, but thank you! 
(the process involves acquiring the mod and figuring out how FS reports the items back to me through its API, so i can add the correct strings to my data files)
If you end up making something for this please @me so I don't miss it, I need to focus elsewhere for a little bit. I should mention I do have a small c# component in my mod so I could add it there if that works for you. Thank you in advance if you end up working on this, if you don't then no worries.
I was gonna add it to my map mod
It's open source (MIT) tho people are free to yoink bits of it for their own mod
gotcha thanks
I love the screenshot/banner
under no circumstances should you get it confused with a mod that adds map properties tho /lh
Hey there one (1) map prop in it, the fruit tree thing
i thought you told me the only one you had you deprecated
I forgor about that one
wow misleading
Adds a few map related features, no strong design theme just whatever I happen to want.
This is my get out of jail free card
I'm starting out with content patcher until I get the hang of things
I have "content.json" and "manifest.json". SMAPI loads the mod, but complains that there is no content.json
I'm following https://stardewvalleywiki.com/Modding:Content_Patcher
they must be in the same folder. if they are, then double check its actually a .json file. do you have file extensions visible?
❯ ls
content.json manifest.json
Also, make sure you are following the documented guidance for manifest.json:
https://stardewvalleywiki.com/Modding:Modder_Guide/APIs/Manifest
It needs to specify that it is a content pack for Content Patcher
I copy and pasted and edited the manifest:
{
"Name": "Axolotl Valley",
"Author": "Axolotl-Logic",
"Version": "1.0.0-beta-1",
"Description": "It's a secret! Brought to you by Axolotl-Logic.",
"UniqueID": "AxolotlLogic.AxolotlValley",
"UpdateKeys": [],
"ContentPackFor": {
"UniqueID": "Pathoschild.ContentPatcher"
}
}
From that page
Does your content.json file have content?
... whoops, must not havev saved. :🤦:
The file is there, just empty as you said
Okay, onto the next error message, thank you! I'll struggle with it a bit first
isn't it also allowed if it's absolutely necessary for the mod to function? like, it's the core of its whole premise?
... so is content patcher exclusively about modifying existing assets? Like if I wanted to introduce, for example, a new item or NPC, would I need to use something else?
thats the only reason they WOULD allow it, but that is what you need to get approval for still
Think of Content Patcher like a set of utilities that can add/edit things that are loaded through the game's content pipeline
neither does my mod loader for Cobalt Core
im just reiterating what their guidelines say
and yet we've obtained permission
take it up with nexus, not me
"Your mod requiring it to function is not a substitute for asking permission." is the takeaway here, I think.
i dont think a random no name mod would get the same exceptions SMAPI would
Permission is still required, regardless.
You can both add new or make changes to existing NPCs/items using Content Patcher
"Files (especially executables) that connect to the internet to download or send information and/or files are prohibited unless where it is crucial for the functioning of the mod/utility. Please note that "auto update" functionality does not qualify as crucial and that we reserve the right to moderate and/or remove any files/tools/utilities/mods that communicate with the internet. If your tool's/app's functionality depends on the ability to send and receive information/files, please contact staff or send an email to support@nexusmods.com laying out your reasoning and providing the source code for your tool/app."
this is the exact wording of their guidelines
(Pathos did get official permission, though: #making-mods-general message)
yeah just found that paragraph
to clarify, adding an item/NPC is modifying existing assets, in this case you're modifying them to insert a new entry
Ah
right
(right, that is what i meant by exception, pathos got permission but as shockah says, SMAPI can just be used offline, too)
Okay, so like the Character file?
!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:
-
Tiakall has a great tutorial on making a custom NPC for 1.6.
-
NPCs no longer use dispositions, check the wiki page for the new NPC data.
-
Aviroen has put together a template that will allow you to easily create a romanceable NPC.
-
Feel free to jump into the https://discord.com/channels/137344473976799233/1277457201077813280 thread for more interactive feedback and help!
-
Fireredlily has a WIP NPC Builder Please do report any errors you get with it into the NPC thread!
Data/Character.x something or other?
Have you unpacked the game's data already?
NPC has a lot of parts
Your edits will mirror the vanilla assets
The Data/Characters is only one bit
I downloaded xnbcli and poked around files to see what was in them
That's the extent of it
! unpack
!unpack
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!
The unpacker is safer, as xnbcli doesn't always unpack things correctly for Stardew Valley.
We recommend stardewxnbunpack
@latent mauve Yeah it was struggling with the one file I wanted to look at
Well, the point is to use the unpacker (StardewXnbHack) to get ALL the files. 😛
That way you don't have to worry about "oh, this references this other file so now I need that one too"
this slideshow is 7 years old
Which is pretty dang common for text (Strings files)
Where can I access the junimo chest's items?
The global inventory?
Game1.player.team.GetOrCreateGlobalInventory("JunimoChests")
Game1.player.team.GetOrCreateGlobalInventory("JunimoChests"); is how the chest itself accesses an IInventory, yeah
thanks 
Okay, unpacking! Exciting.
Good catch
Unpacking files for Stardew Valley 1.6.15 (24356)...
Effects/ShadowRemove.xnb => Effect isn't a supported asset type.
Effects/ShadowRemoveMG3.8.0.xnb => Effect isn't a supported asset type.
Seems like a warning
Now I can say yes 😉
Oh my goodness, Fireredlily
The sheet!
That google sheet is really neat, but I'll start with this one: https://stardewmodding.wiki.gg/wiki/Tutorial:_Making_a_Custom_NPC
So, you're interested in creating a new character for Stardew? Good news: with version 1.6, creating a character is easier and allows for more flexibility than ever. However, NPCs are one of the more complicated things to create for Stardew, as they have a LOT of moving parts. This guide aims to provide...
Oh so THIS wiki
I didn't realize there was a separate modding wiki
Yeah it's separate bc main wiki focus on vanilla more
Now I need to write up what I need for graphics assets from my partner
I'm a coder she's a writer/illustrator, we both love Stardew Valley
Thanks for all the help folks!
What's the map name for the museum in town?
ArchaeologyHouse
ty ty
Here's a question, am I starting off too big with an NPC? Should I aim way smaller for first mod?
I have some hobbiest game dev experience
and professional SE
You should make the mod you want to use as your first mod
i say make whatever you have passion for because that will carry you through learning hard stuff
Okay, awesome
And all mods really
It's good advice, but I can come up with dozens of ideas that I find interesting
But yeah, NPC is most motivating
if it helps, nothing about an NPC is technically challenging
i’m making NPCs as part of my first mod and it’s a lot of moving parts but it’s worth it when i see them in the game functioning ❤️
Oh, okay, I have that in spades
its just a lot of moving parts as nic says, thats really the only reason why its not recommended as a first mod usually
new modders usually vastly underestimate the amount of work required
an npc is a complex project in terms of "there's a lot you have to do" but so long as you're determined, and know what you plan to do, there shouldnt be an issue
it is a lot of work, but none of it is challenging work
Will NPCs use buses etc when traveling with their schedules or is tht something I need to code in for them to use
(unless you struggle with art or dialogue/story writing, but thats not NPC specific)
im still fighting the dialogue devil
Gotcha, damn
Wondering if it's even worth it to add a handful of NPCs just to make my meadery location feel 'alive'
depends on if you really want to tbh
I wish I could just plop some down and assign them some basic AI to wander and shit
😔 if only it were that simple haha
if you dont need them to be full fledged NPCs you can use CC or MEEP
Oh?
If they don't need to wander then map patch is sufficient
I mean I have the NPC dispositions and sheets etc done, they are imported they just stand there though haha
I think I might just omit them, I don't know if it's worth the effort also additional load for no real reason
Um, my sofa is not sittable even though I've edited the ChairTiles. Any reason why this might be?
"Action": "EditData",
"Target": "Data/ChairTiles",
"Entries": {
"Lilybrook_misc/1/1": "1/2/right/couch/0/1/false/Maps\\Lilybrook_misc"
}
},
``` This is my entry
Is it a custom couch?
Yep
Ahh gotcha
You can assign them a schedule that makes them move randomly within a certain bounding rectangle
Oh??!
example schedule entry630 {{ModId}}_LocationName 13 6 2 square_5_3
you just conditionally patch the dialogue
there is no way to alter the order that keys are checked in
they will always follow the priority listed in that wiki page
just add a different dialogue line with a different key.
she will say both, as appropriate
you cant make "fall_23" less specific than fall 23rd bc thats what the key does
but you can just add more keys
if you dont want it tied to any one date then you can just reuse the same dialogue for every day of the week and patch it in and out as necessary
Can anyone help me figure out why my map string is appearing like this?
Never done a map string with i18n before so maybe that's causing a problem?
And this is the tile property within Tiled
Did you add your message to strings/stringsfrommaps
All good, fixed now 🙂
Can you have Tile Data that's more than one tile on Tiled?
So a long rectangle for example?
No I think you just do multiple squares instead
Thats what I do ^
You can do a selection yes
Oh nevermind then, I yield the floor to the experts : )
As long as it's at 16x16 grids the game will recognize it fine
Oh that's good to know!
i was about to ask about the bathtub
did you forget the daytiles? or mis-type the index number
ohhh I did forget to wipe the daytiles and stuff, I just copied the trailer from town
Thanks!
cringe
oh goodie it's gone
that was lickity split
was it another person trying to ping everyone with a discord link. second one in like 5 min. i love when they assume a big server like this allows anyone to ping everyone
Yeah
Hi hi! I am a very very very beginner for this, just trying to start my first mod - I am following the list on the wiki, but I'm already getting tripped up on one of the very first steps - It says I need .NET 6 SDK. The download page for that says it's no longer supported, but do I download it anyways? Additionally, do I need the Installer one and the Binary one, or just one of them?
uh i forgot to do a thingy
i know it is, but that aint gonna make it not look silly to me to assume a 250k member server wouldnt have a safeguard in place for pinging everyone
sunday the 0th. seems right to me. time to post to nexus
also the bed isnt even there
incomplete map rushing too hard
cant even close game
Can't believe you banished yourself to the land before time
Did you explode draw loop
?
behind the scenes lewis is frantically rushing to stuff things in cabinets and sweep the floor before you get there
Is ur smapi full of red rn

if it was erroring and the draw functions were filling the stack trace that would be exploding the draw loop
Is anyone able to help me with this? 🥺
I'm going to assume there's a missing map property and/or critical path tile used during new game logic to position things, and it broke the entire new game logic and just dumped you into the game without running any of it.
You can use the newest .NET SDK. It can still compile for .NET 6.
(i also want to ask, do you know for sure you need C# for your mod in the first place?)
I'm just following the list of stuff it says to do before I can start. I don't know yet what all I need, I haven't done this before...
Adding a couple new characters and an extra area where they live
then you can definitely just use Content Patcher
update: it kicks me back to the menu when trying to load now
!startmodding
Making mods can be broadly divided into two categories:
- Content packs are formatted text files, and don't need any programming knowledge. They can add/edit NPCs, maps, new items, shops, and more. To get started, see the list of framework mods, the wiki tutorial for Content Patcher, and there might be relevant guides on the tutorial wiki.
- C# mods use programming code to change fundamental game mechanics. See getting started with C# modding.
Usually it’s easier to start with making content packs, since you don't need to learn programming.
first bullet point
(though also keep in mind, one new character is a lot of work. "a couple" is a lot more)
(all technically easy work, but just a lot of it)
i think this is all broken cuz i forgot directory climbing is like forbidden
I have a few friends helping me, but they also haven't done this before. So hopefully we can manage it
i wish you guys luck because when i started about a year ago i was mad suffering
tho i was obviously failing bc i wasnt looking at things correctly
I tend to be good at repetitive tasks and stuff like excel, but I'm not super knowledgeable at other computer stuff and technology tends to break at my touch so. It's nice to have somewhere to ask questions haha
knowing where to go to find assistance (like searching thru discord to see if anyone else had the same issues) is unfathomably helpful
it's not dying anymore
i think
awwwww yeaaa i can now throw foliage everywhere
..and make the other 80% of the map
Can warps be done in just the json or do they have to be in the Map Properties in Tiled as well?
content patcher's AddWarps stuff is adding them to the map properties
real
okay, second question: the tutorial says to add a manifest.json file, but it doesn't tell me how to make one?
Like it has the stuff that needs to be in it, but not how to make the file itself
I'm not coding too hard right now, but I should ask - is there a way to get the value of the KissSpriteFacingDirection field in Data/Characters for an NPC?
I reaaaaaaallly don't want to have to add in whatever weird exceptions there will be per NPC, but I will if I need to
go to any text editor (recommended ones are linked i believe) and click new file
!json
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.
Most data files for sdv modding is json, which are just plain text files
Pick one of the mentioned text editors
thanks!
Can someone explain to me like i'm 5 how to fix this? or help point me in the right direction of where to post? Thank you!
Is it your mod?
no, one I got from Nexus
!mh
For help with modding issues, please ask in #1272025932932055121! When asking for assistance there, sharing an error log will help others identify your issue (see https://smapi.io/log for instructions).
Usually just reinstall it
i know there’s a way to set it for your NPC, if that’s what you mean?
If you mean as a cp token, no
Yeah I was looking to derive the value for Date Night Redux because someone finally used that field with a romanceable character and it caused a flipped kiss sprite with DNR
Ah well. I need to get back to coding it and learning C# soon, just some stressful life stuff going on that's made me instead go with decompress stuff rather than complicated writing XD
Maybe custom kissing mod expose something, im not familiar
Is there a reason why tiles are appearing in game on my custom map but aren't there in Tiled? They're tiles I've deleted previously
Game can't place what isn't there
I'd check to make sure you've rebooted the game since editing and that you're editing the right map and the right patch is happening
All of those checks I've done. All my new edits to it are showing correctly but some of the tiles I've deleted are still showing in game
if its your custom location, then it can only be your fault
if its a vanilla location, could be other patches happening
It is a custom location
I am trying to add a new tab to the inventory, where is the data for it? (I am using C#)
is it possibly daytiles/nighttiles?
The tiles definitely aren't there on Tiled, so strange
yeah i've had that issue before, so annoying
Did you make sure there are no properties adding the tiles? For example I edited a map to remove a lamp once but at night it kept reappearing because the map had tile properties to add a lamp at night.
I don't have any DayTiles or NightTiles on this map yet
did you start from a vanilla map? maybe there are invisible tiles or something that are showing up in game
It's my own custom tilesheet if that makes a difference?
I placed a building down as a test and then removed it. 2 tiles of it remain in game
If you mean a new tab for the game menu, I'd suggest looking at my Better Game Menu mod that's getting released at the end of the month. If you actually mean inventory page then I'm confused what you mean by tabs.
In the player inventory.
When you press E.
That's the game menu. Inventory is only one part of it
Okay, where can I find the data for it though?
when working in C#, you have to abandon the idea that there is a nice easy to edit data model for everything you want to change
So... Are you saying I have to make my own data model?
"data" is meaningless in this context.
There's no data model. It's all hard coded.
Anyways, I've got a mod that's going to be released at the end of the month called Better Game Menu that has an API for easily making custom tabs for the game menu. That'd be where to start.
if you are lucky there's a hard and annoying thing to reflect into and change
GameMenu didnt even have that until it became Better 
As someone who has written PRs for most of the mods doing custom game menu stuff, let me confirm that adding a tab to it with harmony is hard and annoying.
making your own data model is called making a framework
but you can't just "make" one
you need to rewrite everything to use your model instead of the vanilla stuff
that's what Khloe did for the game menu
I am now rethinking about moving to C#...
What are you even wanting to accomplish with your mod? Why do you need a custom game menu tab?
I was going to have a tab that you could check if it was open or closed, what stock it had, etc.
So... the phone, but as a menu I guess?
You can't access the phone until kind of late into the game so...
At least I don't think you can
....can't you buy it day 1?
so make a mod that gives you a phone at the start of the game : P
isnt the phone hardcoded to hell too
Yeah, 2K gold from Robin
can only call some randos
Nah, you can call shops for hours
all shops?
all vanilla shops.
there goes that idea
mod shops will need some code chicanery
New development: no recolour applied - invisible building tiles and then when Earthy recolour is loaded, the building tiles are there
yea thats hardcoded as hell to me too
For some reason I was thinking the phone was de-hardcoded in 1.6
BetterPhone
But I think that was incoming calls?
im moving back to CP. someone else can torture themself with C#
well its prob not that bad, u can do it with some combo of BETAS MMAP Better Crafting
on a new phone BC unrelated to vanilla
That happens too me all the time. Have a great idea for a mod...... find out I need to learn c# to make it. Bye bye mod. You at least went a step further then me. And started c#.
How about BetterFarmComputer. Get an internet connection.
no u only have 5mbps cable out here
i built the tutorial mod but didnt make an actual mod out of C#
I think stardew take place in the 90's so internet would be weird .
it happens, i've made a few things before realising 'oh that's already in the game? if only i played far enough'
the approach would be
- Better Crafting: provide BC based tile actions
- MMAP: provide question dialogue tile action
- BETAS: provide dialogue box trigger action
3 whole ass deps just for 1 phone 
No that'd be amazing because then you could make some fake retro webpages
i'm sure i saw a mod that did something similar, maybe i just dreamt it up
You could put in the dial up sound.
im just going to make a More Achivements mod
People back then had no idea what they were doing and it was great
DOS in sdv
SDV in SDV?
(You know I wonder how awful it would be to somehow load Stardew inside of Stardew and make it a minigame. You could get a Stardew arcade machine to play some Stardew while you're playing Stardew.)
Inception? How many layers would you add.
-# Alternatively embed an SNES emulator and load up Harvest Moon
Hi... I'm trying to add a custom path as a new object, but in reading the wiki, I'm not entirely sure how to format my new season stone path.
"Changes": [
{
"Action":"Load",
"Target":"{{ModID}}_TownStonePath",
"FromFile":"assets/{{season}}_White_stone_path.png"
},
{
"Action":"EditData",
"Target":"Data/FloorsAndPaths",
"Entries": {
"ID": "{{ModID}}_WoodFloor",
"ItemId": "{{ModID}}_WoodFloor",
"Texture": "{{ModID}}_WoodFloorTexture",
// Additional fields etc
}
},
]
}
That would be awesome, until Nintendo comes along.
you also need a Data/Objects entry
It just makes me think of how the original Animal Crossing had all those emulated NES games.
in yakuza its tradition to just let you have entire games
SVE in SVE in SVE in SVE in SVE in SVE in SVE in SVE in SVE in SVE in SVE in SVE...
I know, but I'm having trouble finding a mod which demontrates how to put the commands in visually
wrong link oops
Maybe the stuff from the wiki is supposed to be obvious to someone who has a better understanding of fromatting already?
https://stardewvalleywiki.com/Modding:Floors_and_Paths I'm using this
so the things wiki lists in a table usually translates to 1 entry
Just not sure how to format everything
Does anyone know if the custom backpack (Return of Custom Backpack) framework does well in multiplayer?
This mod litterally just adds pipes. Ignore the automate instruction, as you don't need that part. https://www.nexusmods.com/stardewvalley/mods/21653
That's an example of how to add a path.
Are the achievement icons hardcoded?
they're in cursors
Anyone know the name of the sound which plays when you place a stone path? I don't know which to pick out of the wiki list https://stardewvalleywiki.com/Modding:Audio#Sound
(if you mean the weird smiling stars)
Yeah but how do I index them to get them onto the achievement data?
It doesnt say anything about it on the wiki
oh i dont know that
you can just copy it from the unpacked
Where would it be in the unpacked?
here's cobblestone path for example
"8": {
"Id": "8",
"ItemId": "411",
"Texture": "TerrainFeatures\\Flooring",
"Corner": {
"X": 0,
"Y": 128
},
"WinterTexture": "TerrainFeatures\\Flooring_winter",
"WinterCorner": {
"X": 0,
"Y": 128
},
"PlacementSound": "stoneStep",
"RemovalSound": "hammer",
"RemovalDebrisType": 14,
"FootstepSound": "stoneStep",
"ConnectType": "Path",
"ShadowType": "None",
"CornerSize": 4,
"FarmSpeedBuff": -1.0
},
Data/FloorsAndPaths
its the very data you are editing
oh. these freaky faces get slapped onto the star
lol
Is there a way to index a texture for an achievement?
One question about the Item id though. Since this is a new item, do use a mod id instead or something?
Looks to be random, seeded based on the achievement's name. cs if (this.currentTab == 5 && drawColor) { int startPos = Utility.CreateRandom(Convert.ToInt32(nameParts[0])).Next(12); b.Draw(Game1.mouseCursors, new Vector2(c.bounds.X + 16 + 16, c.bounds.Y + 20 + 16), new Rectangle(256 + startPos % 6 * 64 / 2, 128 + startPos / 6 * 64 / 2, 32, 32), Color.White, 0f, new Vector2(16f, 16f), c.scale, SpriteEffects.None, 0.88f); }
If it is random how can they have it listed out on the wiki?
"seeded based on the achievement's name"
oh.
what is the point of this mr ape...
this is bonkers. what did he mean by this
i mean i think its a fun feature
Think of the modders!
strategically naming all my achievements in a way to ensure they all get cool glasses face
"Yes my achievement name did need to have 47 spaces after it"
i need past me to tell current me why she wrote a transpiler to insert switch cases when she could have instead easily made a prefix
ive never been more tempted to ping ConcernedApe in my whole life to ask about this
also, keep in mind your achievements will be very incompatible with any other mod that adds achievements, since they are int keyed
Hubris.
i did learn about labels from it which was cool
now i make the occasional baby if statement with transpilers
we do things not because they are easy, but because we thought there were no easier ways
but seriously what was I on 😭
in my first few mod i usually go
transpilers go brrr
and then a day later i remove all of them for postfixes
i still like to defer to a transpiler if its possible
but at this point not even a transpiler is enough for me i need something more hacky and ingrained
i was going to end up with an absurd number of switch cases
my first question about patching a function is "can i do this with a postfix"
I was reading again, it's not achievement name, it's achievement id.
Have a look at the example I gave you in ES for the seasonal texture. I wrote a dummy item ID there that you can look at to see what yours should be like (mod id prefix, then descriptive name)
The local variable names tricked me up
i have converted to a nice little custom api for the handlers instead
my first question is are there fun net events i can steal for this
well that does make things easier, no need for 47 spaces
To get an achievement do I need to set a Trigger action/GSQ? (I get the 2 mixed up)
no need for spaces, however good luck finding an int that works when it needs to be sequential (iirc) and also if someone else wants the glasses you'll be fighting them for it
i vote we switch to a consistent hashing ring where each achievement id is assigned to the next icon around the hashing ring /j
you cant grant an achievement with CP
what if you could with betas /lh
someone would get mad at me when someone releases a mod that auto grants all steam achievements without realizing it bc they already had them unlocked
How?
time for secret notes framework but for achievements
in fact it might even throw an exception without a framework regardless
oh
bc it will always try to grant the platform-specific achievement i.e. steam or gog
and i dont know what that does if it cant find one
just add powers instead tbh
Then why even have CP documentation for achievements!?
if you don't mind your custom achievements being in the powers tab you can add them there
you'd need to circumvent that with a patch
its basically same thing gameplay wise
because you can alter the data of the existing ones?
Are steam achievements linked to the I game ones? Would modding them allow me to unlock the steam one too?
yes
source: accidentally gave myself the infinity weapon achievement illegitimately. rip.
Well I need to have a way to get the power, the power to have relevance, the power to do something, and for it to be interesting
that is difficult to do in CP anyway
powers don't need to do anything
you're extremely limited in what a power can "do" without C#
they can just be a pretty icon thatc lights up
the power itself on the tab does literally nothing. its just an icon that essentially says "you have this mail flag"
and yeah you'd be limited with what you can fire with mail flags and trigger actions (and stats?)
(its not always a mail flag, but the point stands)
which to be fair there are lots of things you can do with frameworks and mail flags
thats it, im just going to make my own farm
editing Data/Powers or Data/Achievements cannot do anything that you cannot already otherwise do with CP
its just mail flags but fancy icon
have fun in tiled? i guess XD
Can you stack mail flags? I have wanted a mod that let me drink snake milk more then once for a while. If I can stack flags I may be able to do it.
i wont :)
u can unset it i guess
Shoot, another mod I can't make.
dunno if u get += amount of hp or not
there are player stats though, if you want a sort of stackable memory item
however be aware that you need a dependency to use player stats in a CP token
otherwise you either need EMP or a trigger action middleman
ah, true
using a trigger action that checks stats to send a mail flag to use in a token is possible, just annoying to have to do
...I was halfway through typing up a pure CP solution before realizing there is no "+max hp" buff
(to be clear said solution wouldnt allow indefinite stacking anyway, but maybe up to 5 or 6 is fine)
do you count CP frameworks as pure CP
are you only discounting c#
you'd need spacecore for buff on eat
because BETAS has an action that can set your health and override the max
surprisingly only last month, after 6 years of owning the game, did i get the steam achievement for cooking half the meals in the game while debugging new seasonings for love of cooking
though, I can't remember if I have a tokenizable string for the current max
there were a bunch of achievements added in 1.6, that was probably one of them
I just wanted a balance why to get more HP. Didn't need infinity. Just some way to get more a few time. Kind of like stardrops. But every way I could think of does not work. So when you mentioned the flags I wondered if I could add that one more than once.
I mean you can permanently add a max health buff lol
It's doable
Just do a trigger action every morning
that is my solution yeah, the snag was that there is no max health buff (in vanilla)
terrible times
BETAS can't actually do it at the moment either anyway because it's a Setting action not an Adding one
I'm adding this in the next Darkwings update
unless there's a player stat for Max hp
It is cool you can do that. I did not know you could.
not these ones:
https://stardewvalleywiki.com/mediawiki/index.php?title=Achievements&oldid=92428
i just like my spicy eel and crab cakes is all
i mean you can do anything you want hahah
yea im in C#
ah, so you were simply bad at actually playing the game /lh
i guide others to a treasure i cannot claim myself.... (cooking food other than crab cakes)
(tbf that's basically half my mods too, being frameworks that I do not use)
I guide others to a treasure I cannot possess (clickCraftingRecipe transpilers)
wait you cook those?
I have stacks of 50 from killing crabs in skull cavern
and 100 spicy eels
i need to get to the crabs and serpents somehow lol
that's where cooking the spicy eel and crab cakes come in
...there isn't????
I could have sworn
you often do
Does the tea not
max energy
max energy yes, max health no
I mean, my frameworks require you to have some artistic talent to use them. This is what happens when I use my own framework
my only published framework is the one i made just for myself, lol
I have only cooked spicy eel once. To get perfection. Now I have to do it agian because of the steam achievements.
you guided yourself to a treasure you could and do possess
we should all be so lucky
Bushes, I can tell what they are. So your art is fine.
outside of EMC and furniture machine every framework I made I use
(which is 3/5 now that I actually do the math so not that impressive I suppose)
wait no, I do use EMC in the poop mod
sounds like you need to make more frameworks
Using your own API is good.
so i think this chunk thing is about tiling the bg and picking random non default chunks to draw
green fuzzy dice framework..
what is it for...
geocities webpage background css framework
waow... just like the ugly glass blocks at a fast food place
Randomly running around in my test save. I'm sure this is meant to be like this /s
Sorry, just saw this as I was on another tab (so no notifs). Thanks
nice mangrove
(Clearly I removed a mod that edited this map after saving, once, but it's still funny)
What mod other then SVE edits that map?
the Forest? a lot of mods I'm sure
Yay but whatever mod it was made it bigger, not just added a building or warp.
terrible times
Do I need any corner value like: "CornerSize": 4, when my paths are regular, randomized, stone? Can this be removed? Also, I'm not sure what the 4 is even refering to.
Are you using the wiki page for reference?
I've been using that, and a few other things
I already forget which page it may be from, so I'll need to look through several of the relevent ones again.
Well as the wiki page says the 4 is the number of pixels that the corner is the size of.
Oh
Is there a way to spawn a shed on farm creation without FTM?
I need to open more tabs for all the current reference pages
Do I need this corner value though?
Do your paths have a decorative border?
shoutout CA for making the utility method sparkleWithinArea
question, are there really no commands to cancel or complete a special order?
Utility.makeTemporarySpriteJuicier() gives life to my dry, parched bones
FTM can't spawn a shed at all (yet), and the base game still hardcodes building spawns, as far as I know. You'd need SpaceCore (look for FarmExtensionData, I think?) or other C#.
They do not
Then I guess I will need to make do with what I got
You're making a stone path, right? Why not just copy the vanilla one and then test it and adjust the values if needed?
try CompleteSpecialOrders?
Debug cso will complete all of them
But yeah
seems like SpecialOrder will add one by id
There may be an action command too
There is
remind me in 2 hours to update wiki debug commands
mmmmmmmmmmm I'll think about it (#6586438) (2h | <t:1742526737>)
You can add or remove one by id with an action
there's add/remove SO actions, but not a complete afaik, yeah
thank you
CompleteSpecialOrders completed it but didn't remove it from my journal FYI
I should probably try that. I'll go through my content unpacked folder to try and see if I can find the full thing I need.
debug commands do tend to be pretty barebones
I would still like to lodge a complaint 
thanks for the heads up
The issue I have is that it is very hard to find the examples I need through the folder for some reason.
Are you struggling to find the right file in the Data folder?
Yes. I'm not really sure how other people find stuff the content unpacked folder, because I can't just search the keyword and then find the data reference I need.
Usually by looking at the name of the Target they're editing in their mod
Or reading the name of the file on the wiki page
But you can also do a "find in files" search to search for a word or phrase across an entire folder or set of folders
you absolutely can search the unpacked content folder, just open Notepad++ or Sublime or VSCode and use Ctrl+Shift+F to search for the keywords
I was wondering how to specify the search to look for things IN the files of the folders, so that should be helpful. I'll try that out.
they'll search all text files for whatever you're after, which includes maps. super simple!
I'm concerned with my NPCs having the same birthdays as other NPCs whether they be vanilla or from other mods. Is there a limit to who can share each date?
how would i patch a tile property on the back layer with cp :L i cant figure out how id do the formatting
there is not a limit to who can share each date
(take it from someone who has a really large amount of npcs... ive seen four birthdays on the same day before lmao)
Good to know, thanks Lily 
happy to help always :D
{
"Position": {
"X": 3,
"Y": 4
},
"Layer": "Back",
"SetProperties": {
"mushymato.MMAP_AnimalSpot": "T"
}
},
such speed chu...
under "MapTiles": [
thank you 
hopefully it works or else i will go insane
I don't think I've ever had so many people so sad they couldn't use a warp rune before lmao
ive already done so many things for 1.1.0 and yet none of the main things that need to be done... how does one even design an arena that's cool
"LogName":"WalnutRM Warp to Qi Room",
"Action":"EditMap",
"Target":"Maps/QiNutRoom",
"MapTiles":{
"Position": {
"X": 1,
"Y": 6
},
"Layer": "Back",
"SetProperties": {
"TouchAction": "MagicWarp AngelOfStars.Mrqifriendable_QiRoom 2 4 angelofstars.officeunlock.mail"
}
},
},```
does this look right :L
i think i need a break from modding
Then take one, breaks are important
what do you mean by that :L
[] instead of {}
OH
Don't forget you can use the CP docs on github to see how to format this stuff ^_^
and the things inside the list must be in a {}
you know I thought it would be that... but i wasnt sure
It's hard for my brain to wrap around it sometimes heehoo
(clarification: inside this list, at least)
I usually just copy and paste the example Pathos writes and then edit that xD
i omit the surrounding Content
i'm pretty sure there's no limit and it's fine, but at any rate it has to be because every date is taken by someone at this point
except for major festivals probably
So, my custom paths mod has no smapi errors, but it didn't show in the game. I mixed the examples people sent, the example of cobble stone paths I found in the content json, and stuff from the wiki into this, and because I could find no clear all encompassing example of what the content json needed, I certainly must have just combined everything in the wrong way. Here it is:
!json @fierce vault
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.
Sorry, is this supossed to go somewhere else?
did you also add an entry to Data/Objects ?
It's best to upload you JSON to the website that governor linked
I deleted that entry when combining stuff...
you need a held-item version as an entry in Objects in order to actually use it ingame
They where just saying use the json parser and send the link to it not the actual file,
Ok, what issues does linking the file cause? I can try the smapi command if I do it again.
its hard to read
Ok. gotcha
and it isn't validated, which the web parser will try and do
I'll make some edits and see if it works
These are the errors I got:
[Content Patcher] Can't apply data patch "WhiteTownStones > EditData Data/FloorsAndPaths #2 > entry #2" to Data/FloorsAndPaths: failed converting String value to the expected type 'StardewValley.GameData.FloorsAndPaths.FloorPathData': Error converting value "ParcySnippet.TownStonePath_TownStonePath" to type 'StardewValley.GameData.FloorsAndPaths.FloorPathData'. Path ''..
[Content Patcher] Can't apply data patch "WhiteTownStones > EditData Data/FloorsAndPaths #2 > entry #3" to Data/FloorsAndPaths: failed converting String value to the expected type 'StardewValley.GameData.FloorsAndPaths.FloorPathData': Error converting value "ParcySnippet.TownStonePath_WoodFloorTexture" to type 'StardewValley.GameData.FloorsAndPaths.FloorPathData'. Path ''..```
!log 
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:
- Open this page: smapi.io/log.
- Follow the instructions at the top of the page to upload the log file. (Don't copy & paste from the console window!)
- 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.
as blueberry says you should upload a full log to smapi.io instead, but your last patch is wrong. you just went right into adding data about your floors and paths before giving it an entry key
Sorry, I was trying to figure out how to put the log with personal data removed. It said it was invalid to just paste of portion of it in the validator.
I'll try that out
can i do this in keg machine rules, or do i need to use selph's extra machine config to add a second input? "Triggers": [ { "Trigger": "ItemPlacedInMachine", "RequiredItemId": "(O)271", "RequiredCount": 1 }, { "Trigger": "ItemPlacedInMachine", "RequiredTags": "category_fruit", "RequiredCount": 1 } ],
need EMC
gotcha!
u can look at cornucopia's various mayos
true!
what about, when i want the result to be named {thing i put in there} Soju
bc wine does this in its outputrules "ItemId": "FLAVORED_ITEM Wine DROP_IN_ID",
thank u!
Two questions, both of which I feel like the answer is probably "yes", but I want to make sure I'm not doing more work than necessary:
- In order to have a 3x5 furniture object that has seats only in the center tile, would I need to use Furniture Framework?
- If the object was previously added via CP, do I need to completely erase it/recreate it as a FF object instead?
Also 3rd question that I just thought of: Is it possible to use i18n tokens in Furniture Framework for Display Names?
Furniture Framework (right now) does not use CP at all, so you cannot use any CP tokens inside of it, which includes i18n tokens, as those are just a CP thing
(i know the author has been working on a rework for a while though to let it use CP, though)
Could you use a LocalizedText tokenisable string to call another asset that you could use i18n in?
i thought leroy made it CP
if FF supported that, sure. but the docs say it doesnt
yea kind of, though y
the current version on nexus does not use CP
only an in development branch on github
Because I don't know how else to make it easily translatable lol
Though if it doesn't work then that obviously doesn't make it translatable haha
{
"Action": "Load",
"Target": "{{ModId}}/i18n",
"FromFile": "i18n/default.json"
},
// chinese
{
"Action": "Load",
"Target": "{{ModId}}/i18n",
"TargetLocale": "zh-CN",
"FromFile": "i18n/zh.json",
},
then u can [LocalizedText {{ModId}}/i18n:YourKeyHere]
well, you cant with FF
if i have regular unflavored soju (which is just made with (O)271 ) and flavored soju (which is made with (O)271 and a fruit), do i need to set something somewhere as "UseFirstValidOutput": false, so it like... checks if u have a fruit and doesnt just default to the og?
unless the docs themselves are mistaken
I know the answer to 2 is yes you'd need to remove the CP one or you'd just have two (or maybe neither if you gave them the same ID, I am not sure).
It checks in order. So put the 2nd one below the fruit one.
I didn't realise it was possible for something to not have support for tokenisable strings
oh okay!
the middle pieces are sittable
nothing supports tokenizable strings unless its done on purpose
so i dont need the "UseFirstValidOutput": false,?
you have to parse the token, after all
and theres end pieces that r not
but if your code never calls the parser, it wont be parsed
I'm sorry, but I realized that I'm not sure what you mean by giving an entry key, as in, I can't remember what else needs to be added in order to have one. I'm also trying to properly upload my smapi report using the program.
instead of
"Entries": {
"ID": "blabla",
...
}
you need to give it an entry key.
"Entries": {
"MyFloorPathDataId": {
"ID": "blabla"
...
}
}
Oh, that's for the mod id right?
otherwise, its just taking "ID" as your entry key, and trying to use the string "blabla" as the entire set of floor and path data
I am seeing an entry key: "{{ModId}}_TownStonePath": {
you've done it correctly in your first Data/FloorsAndPaths edit
but not in the second one
so see further down
Oh, the second one
Oh yes the json validator link one
Yeah, for my case, I'm looking at the HxW furniture swing bench
Which has pillars on the two sides and the only actual 'seat' that the character can sit on without looking wonky is in the middle
(Making it FF compatible with fixed seats would be a personal edit)
So like this right? ``` {
"Entries": {
"{{ModId}}_TownStonePath": {
"Action":"EditData",
"Target":"Data/FloorsAndPaths",
"Entries": {
"ID": "{{ModID}}_TownStonePath",
"ItemId": "{{ModID}}_TownStonePath",
"Texture": "{{ModID}}_WoodFloorTexture",
}
}```
do i need the ItemId AND the PreserveId for a wine, or does the ItemId set the PreserveId?
"ObjectInternalName": "{0} {{ModId}}_FlavoredSoju",
"ObjectDisplayName": "[LocalizedText Strings/Objects:Soju_Flavored_Name %PRESERVED_DISPLAY_NAME]",
"PreserveId": "DROP_IN_PRESERVE",```
you can't use FLAVORED_ITEM for modded items
it only supports the vanilla artisan goods
PreserveId is the path for mods
oh ok
so i can ........ ignore the ItemId field?
like just delete it, or do i just have {{ModId}}_FlavoredSoju in there
how would you make a map patch happen immediately after an event? I'm currently using HasSeenEvent but that only updates the map the next day, after a game save
i've dug myself into a hole haha
if you set the patch update rate to OnTimeChange or OnLocationChange, it'll change upon those two things instead. are either of those quick enough?
Yes!
OK, this is the only error I got now: ```[Content Patcher] Ignored WhiteTownStones > invalid: must set the Action field.
okay, thank you
extra thank you, I was just searching for that page
I'm not sure what I missed for that error to happen
one of your patches doesnt have e.g. "Action": "EditData"
either due to just forgetting it straight up or misplaced braces or what have you
Hmm, I'll look again, but I'm having trouble
specifically its the one where you're adding white town stones
Yes, that mod has yet to work
ah, ignore me, just me confusing the number of >s in that kind of error again
and what just one means
Would it help if I upload the content json again?
(i forgot that WhiteTownStones would be the name of the mod and not CP's auto assigned name of that patch)
i mean technically yes though it'd just be more eyes looking for the same misplaced braces
Yes, your latest.
or missing action field
then sure, send it
Ok, so my NPCs are having issues. I've loaded 3 into my game and none are showing. Can anyone see the issue? https://smapi.io/log/8e1e5c00ea2c45e991b2cbe6eb939a27
Log Info: SMAPI 4.1.10 with SDV 1.6.15 build 24356 on Microsoft Windows 11 Home, with 12 C# mods and 4 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
https://smapi.io/json/none/9c71caaf34624b5fa0102f918bce0ffb Here it is. Again.
what does the json where you are loading your portraits look like?
your "Entries" in the last part isnt part of any patch at all. its just alone
It's not connected? Where do I place it instead?
may i ask once again why you are setting your targets so strangely. bc that is the issue i presume, if you did remove that TextureName field from last night
why not just Portraits/RubyLilybrook
Unless your NPCs are called RubyLilybrook/RubyLilybrook etc those Targets are wrong
I did remove the TextureName field yep
8bit had the TextureName field set on the character data last night so it wouldve been correct if that had stayed
Ahh I understand
if you removed the texturename field you had before then its just Portraits/RubyLilybrook and Characters/RubyLilybrook etc you want
It has no action or target.
inside a patch, just like you have the other things inside a patch, with an action and a target
Thank youuu
It looks like you should get rid of it entirely because it's not doing anything except setting the {{ModID}}_TownStonePath Texture to null which I doubt you want.
This one? ```{
"Action":"Load",
"Target":"{{ModID}}_TownStonePath",
"FromFile":"assets/{{season}}_Town_stone_path.png"
},
the game will look for Portraits/{{NAME}} by default. the TextureName field you were using overrides that and makes it look somewhere else
that is a different patch.
once you closed that last }, it closed the patch. also, Load patches have no entries
Line 57
ok
You also haven't loaded an image for your path so the game is not going to see the image you made.
Unless it's intentional that you're just using the vanilla one for now, in which case ignore me :)
I've changed to this and I have a new SMAPI error https://smapi.io/log/1056e5ba50504bab8dea2e277fe31879
Log Info: SMAPI 4.1.10 with SDV 1.6.15 build 24356 on Microsoft Windows 11 Home, with 12 C# mods and 4 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
The png I specified doesn't count?
did you change your folder structure to match
I wanted them to be in folders though
like aba says you arent specifying a texture in that last attempt at a patch. you're setting the texture to null.
then adjust your fromfile
Oops. I copied the vanilla example without understanding it.
"Action": "Load",
"Target": "Characters/RubyLilybrook",
"FromFile": "Assets/{{Target}}.png"
},
``` this is what I have now
if i had to guess, null in a texture in a vanilla entry means itll use the default, which i guess is TerrainFeatures\\Flooring
but you presumably want to use your custom one
Sorry I missed seeing the Load patch. Yes you are loading your image but you're not using it. Your Texture is TerrainFeatures\\Flooring but the asset you loaded is called {{ModID}}_TownStonePath.
correct. you need to adjust it to match your new target.
Ok, I'll try and fix that
But isn't my target already correct?
So, this? : "Texture": "TerrainFeatures\\Flooring",
Oh, it should be the asset actually right?
I fixed it wrong
@rigid oriole: update wiki debug commands (2h ago)
well.. okay, then my initial incorrectness stems from the fact that this wouldve been incorrect for the way you originally had it if you havent changed your folders since then
how sure are you that that is a .png and not a .png.png?
i think it wouldve been incorrect anyway?
idk it doesnt matter now
one of the two ways wouldnt match if the fromfile has not changed. your fromfile is currently looking for Assets/Characters/RubyLilybrook.png
Double checked just now and it's not
It's within a folder though, will that make a difference?
(another reason for using standard conventions: less confusing when someone else tries to parse it
)
remind me in 24 hours to Make that mod idea you thought about
yeah, yeah you'd like that, wouldn't you
(#6586570) (24h | <t:1742613283>)
what do you mean by that
change your fromfile to Assets/{{Target}}/{{TargetWithoutPath}}.png if you really want to keep your folders like that
What's the conventional set up?
i meant the convention for the portrait load
Oh
basically, base your fromfile off of the target, not vice versa
for things like this anyway
if its a completely made up target it doesnt matter
most mods of my acquaintance use TargetWithoutPath and not Target in their FromFiles
that is also true
You also don't have to use a token. You can just write out the FromFile path in full.
Especially if you're only loading one thing anyway.
thats also true, if you're gonna use a token you might as well put all of them in one line
(the benefit is that you don't have to organize your mod files in the same way as the game assets)
thats the main benefit of the token
Ah ok, I will try writing it out in full and see if that loads them
I don't like using the tokens because I don't like naming my files the same thing as my Target
"Action": "Load",
"Target": "Characters/RubyLilybrook, Characters/RosieLilybrook, Characters/TracyLilybrook, Portraits/RubyLilybrook, Characters/RosieLilybrook, Characters/TracyLilybrook",
"FromFile": "Assets/{{Target}}/{{TargetWithoutPath}}.png"
you can do this
System.InvalidOperationException: Error parsing '}}_Town_stone_path.png' as a tokenizable string````
otherwise theres no reason to use the token really
What did I do wrong now?
mismatched number of {{ and }}
Oh, I'll see if I can find it...
somewhere around one of your ModId tokens
i'm almost done don't even worry mr robot
Thanks, I will try this now
looks like probably your Load patch for TownStonePath
which would be season actually
I just assumed it would be ModId
Does this look wrong? { "Action":"Load", "Target":"{{ModID}}_TownStonePath", "FromFile":"assets/{{season}}_Town_stone_path.png" },
if thats whats in your content.json, are you sure you saved the file?
I'll run it again
otherwise, send the whole json
ok
All good now, thanks for your help 
alright, added 19 new debug commands to the wiki page
So, a shoe is not an item, but a shirt is an item???
of note are clearactivedialogueevents, bobber, displaceanimals, befriendpets, setpreferredpet, changepet, finishallbuilds, buildcoop, and greenrain
that actually took me so long I need to stop working for the night lol
boots have a unique type of Boots : Item, and shirts use Clothing : Item
what do you mean by one is an item?
My most recent json that I ran: https://smapi.io/json/content-patcher/fb505f4b9d844e2490bd644bbab6e9cf
ohh
I see one of the issues
I found the missing {
I think my problem stems from programming whilst ill. A patch on item is applying to shirts, but not to shoes. I reckon cause the origical methid in item what I am patching. does not call the shoes.
Boots have a number of override methods without calling base within, so if you're patching a method on Item then you may also need to patch the override on Boots
Hmmmmmm.... that may be it too.
Yes, you are quite correct, I shall there proceed! To patching!!! To glory!!! And a red dawn!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
So has anyone started making a newer shinier GMCM based on Stardew UI yet?
Though I guess if Stardew UI is installed it isn't much effort to just make your own config UI. It's just... not centralized that way.
the solutions in StarControl and AFishingSea are to patch GMCM to just open into a stardewui menu
i suppose with BGM you can be the person to do that khloe
honestly i would love if GMCM were redone and built into SMAPI
make a tab that takes arbitrary IClickableMenus that happen to be config menus most of the time
then a C# mod could use whatever they want there
I mean we could make GMCM its own tab using Better Game Menu. That's something I haven't really talked to casey about yet, since it's more effort on that end.
yes but i think this would be more flexible
it could be made to take GMCM/SpaceShared ui menus if we can expose it in api
or i guess, if GMCM registered to the BGM config tab when available
Honestly, just being able to do this is a huge quality of life improvement as far as I'm concerned.
Well, I've officially stretched beyond Content Patcher and made my first FF content pack. Hopefully it works. xD
(It did not work)
random idea i just had: Smaller fish ponds, like cute little 3x3 ones, probably much more expensive, maybe from the wizard for a lot more than the normal ones, or even cute little 1x1s that aren't a structure but rather something you can break with your pickaxe
this one affects og fish ponds by default, but the way it works means you can use it to make a even smaller 3x3 pont that cost more if desired
Good morning!
"Missing or invalid format, skipping Furniture pack" 
Well, it loads now but I can't actually sit on my furniture.
So something's still wrong somehow, but it's not throwing errors
I gave up on my custom paths for today at least after spending hours trying to get it to work.
Sometimes a break is needed
Hope you can figure your issue out later.
Same problem as me, despite me editing the ChairTiles correctly 
I can get CP sittables to work just fine, I just needed FF sittables instead so it doesn't have me sit in midair. >_<
I'm starting to think FF seats don't work if you only have one rotation.
Oh my bad haha, I’m using CP
Amazing
I can't wait for Better Game Menu it's going straigth into the must have qol category
Going to bed now, but I managed to get only one of the furniture seats working: for the only furniture item that has at least one rotation.
So definitely something wrong with the setup for furniture with a rotation of 1, because everything else is functionally identical.
There are no examples of seats with only one view either.
(Am I getting tagged in her multiple times or is my discord just tripping? Every time I scroll up I don't see anything)
Try checking your inbox?
(Okay I'm going with discord is tripping- good to know)
sure, shoot
so a postal center that you can visit and you can sort the mail between spam and real mail to get a bit of gold once per week
like a little mini game for a bit of gold
oh, some people might enjoy that! but depending on the kind of minigame, it would definitely require c#
how is there not a minigame framework yet? i feel like that would be popular
i will figure something out
how would you make a minigame framework
the same reason there's not a catch-all do-anything menu framework hahah
every game is going to be different
true…
games kind of have to be developed, they're too dynamic
I don't think adding the game would be the hard part, making the game would mean actually coding a little game
oh god does that mean i need to get back into C#
eat your monogame and be grateful, there are starving children in gotoro
i really want to make this
C# is the same syntax as JSON right? {} to open/close a function?
i'd absolutely suggest you ignore the whole SDV side of this and instead lookup a guide to making funny little games
since the moment you say 'i will make a minigame' you're no longer in the mindset of making a sdv mod, you are now making a game
i already have an idea of what the game to be, just have a conveyor belt that you can move left to right with A and D or arrow keys
then left is spam and right is mail
ok i think before i even THINK about making the minigame i should make the actual building first
and all journey of the prairie king is, deep down, is a guy you move with WASD and enemies spawn in from 4 places
and then you look at StardewValley.Minigames.AbigailGame.cs
and you see the full horror
those enemies have path finding, spawn randomising, damage, textures, weapons, ect
you're going to need a lot of those too...
spawn randomising for the packages
textures obviously are just something everything needs
i don’t need path finding, just spawn randomising, textures, and mental strength
i mean obviously start small and focus on the most basic feature first
true
but you're gonna need foundational knowledge even before it starts scaling
yeah…
path finding is honestly pretty simple in prairie king and you'll need the packages to follow a path too
oh true
anyway yeah, I recommend learning actual monogame first
I think maybe try to make the game just work in a window with C# and then think about adding it to the game
what is a monogame? i have seen it in logs and stuff
I made a little solitaire monogame once if anyone wants to see it
even made my own textures and everything
it's the library stardew is built on
is there documentation that can help me with this?
so i build my own game with monogame then put it into sdv?
honestly I haven't taken a close look at how IMinigame (the game's integration) works yet
I'd love to see it but since i'm not home you can only send me pictures/video
when you see it you'll get the joke earlier 
oh god, I'm gonna go look it up now
so uh… is there documentation?
for monogame yes, for IMinigame no
and this is true?
that’s it?
god I knew what I was about to get and still hoped 
to be clear Person, you know you're not actually asking for stardew documentation or help here, right? this plan of yours is literally to make a game
like its not something you "just" do and its not something you'd "just" put in the game at the end
right, i need to remember that, this would be my own game
i've started and abandoned like 3 different minigames at this point hahah
the pipeline from wondrous idea to abysmal regret comes at you fast
I may try to plug my solitaire implementation into stardew and see how it goes
maybe 4 actually, that cooking thing started off bold
this channel can help with stardew specifics but otherwise you're kind of just entirely on your own bc minigames are that freeform
fun… i will be wandering off into the abyss now to go cry myself to sleep after multiple failed attempts /j
i was thinking of picking up UFO 50 in the last steam sale for inspiration and then i decided i absolutely will not do that
Good morning. The JSON validator complains about having dots in Dynamic Token names. Is this actually a problem, or something I can just ignore?
it's a problem, yes
I've since changed them into underscores, but I just wanted to double-check.
For my education, is there a particular reason why it's problematic?
The token name should be alphanumeric with no special characters.
given the error, i'd take it to mean no undersccores either. i put together a content pack with some badly-named dynamic tokens and CP didn't log any issues, though
at a guess, i'd assume something to do with query formatting in tokens
The underscores don't appear to trigger a warning 🤔
im not saying underscores will cause problems, but dont take the validator as the source of truth
it doesnt matter what the validator says if Content Patcher doesnt like something
if we can't trust the validator in this cruel world, what can we trust
other than cp
Ourselves
Hrm. Well, CP doesn't seem to have a problem with underscores (or dots, for that matter), so I guess I'm safe. Thanks!
maybe not now, but if CP ever does any parsing related to those characters in the future (like how it uses | for |valueAt and such), then you'll be shit out of luck with a lot to update
Point taken.
Does the latest monospace version still support the microsoft net 6.0 framework?
hi!! what programming language is used in making mods?
Depends, do you want to make SMAPI C# mods or CP mods?
CP is easier imo.
C# for the C# mods, content packs use their own format (which can vary widely) usually in json files
it's not really a specific language, more a formatting
it's coding adjacent 😄
content pack is indeed more friendly to new modders 🙂
(also most mods out there are content packs! and you don't need any programming knowledge to make content packs with Content Patcher, just good reading comprehension /lh)
tysmm all
Does anyone know what version of monospace SDV uses?
Or can we use the .NET 8.0 framework instead of the 6.0?
we're limited to .NET framework 6.0
I keep getting this error
I am using .NET 6.0 and monospace 5.1 (i tried 6.1 but i kept getting the error so i tried 5.1 just in case)
if (!chest.GetMutex().IsLocked())
{
chest.GetMutex().RequestLock(() =>
{
chest.ShowMenu();
Game1.activeClickableMenu.exitFunction += chest.GetMutex().ReleaseLock;
});
}
is there a reason that this just... wouldnt release the lock, but only if i actually interact with the items in the chest? if i just open the chest but dont touch anything and then close it, the lock does correctly release
that's not an error, it's a warning. Does it not run?
I am still trying to figure out how to get an exe file for it to run...
shouldn't you add the exit handler before opening the menu? idk if that would cause that though 
are you following a tutorial?
I am going trial by error and searching up documentation as I go
i just copied how spacecore does it ¯_(ツ)_/¯
if you don't know c# or monogame, you really need to start with the fundamentals
That is why I am looking at the monogame documentation
I would try it the other way around but I have no idea if it would make a difference 

