#making-mods-general
1 messages · Page 257 of 1
waves hand actually, I need more than a boolean, because I'm also giving an anniversary reminder a week in advance
I'm doing modulo math on DaysMarried from Custom Tokens currently
u can just impl compare operators in a GSQ actually
But honestly i think you need a custom trigger not a token
You can also parameterize the specific date so it's essentially like "is it Claire's wedding day on today" But today can easily refer to yesterday or 7 days from now, etc.
One trigger raised 7 days prior
One trigger raised day of
Then u do all this stuff in trigger actions
Think about the GSQ "IS_FESTIVAL_DAY [location context] [day offset]" that could be "IS_WEDDING_DAY [npc context] [day offset]"
I could make that work. Here's what I'm doing now for context:
"When": {
"Query: {{TheMightyAmondee.CustomTokens/DaysMarried}} > 0 AND {{TheMightyAmondee.CustomTokens/DaysMarried}} % {{kPeriod}} >= {{kPeriod}} - 7 AND {{TheMightyAmondee.CustomTokens/DaysMarried}} % {{kPeriod}} < {{kPeriod}} - 5": true,
},
If GSQ makes that simpler, then I'm all for it
Either would work, just trying to give some options that fulfill the same purpose
Sure
chu already did
it's already showcased
Very happy to use trigger actions if they are exposed!
For this all to work, do you need any data coming from me then? Or do I need to put the trigger actions on my side?
"Wiki: The game has two distinct scaling modes depending on the context: UI mode and non-UI mode. You can check Game1.uiMode to know which mode is active"
This is a bit vague to me.. Are coordinates auto-translated using some kind of intrinsics matrix? Why are there modes
(forgive the question, it's past my bedtime!)
Oh ok I need a evil mysterious entity idea like something related to Japanese folklore
Sounds scary I know
I think you'd have to create the custom trigger @deep cypress . I wish I knew how this stuff worked, sorry
Two different sliders in the config for scaling the game
The ui mode determines which setting it uses for scaling
Gosh giving the farmer dialogue options to make them an asshole is kinda fun
oh is that what you were asking earlier? ngl I kind of assumed you meant to type that into google and didn't realise you had discord open instead
Writing everything else isn’t
So it auto-scales all coordinates? Is there a way to just not auto-scale or will you have to invert the scaling?
The answer sort of is that it depends on how you're handling it. I've run into issues dealing with scaling nonsense, like checking for clicks in the wrong spot because I'm not using the scaling correctly.
If you use a mod like StardewUI for UI stuff, then it handles those concerns for you.
Can I draw trivial elements to the screen?
You can, it's when they're intractable that you notice more issues
Or when they're supposed to align to things like in game objects or other UI
Yeah use one of the render smapi events
Those would have spritebatch in the event args ready to use
Okay sounds good
But drawing is not a problem, just make sure you test the game at different zoom levels
Like different extremes
If u need complicated stuff consider stardewui my beloved
Small UI + Small Game, Normal-both, Small UI + Large Game, etc.
And for non-UI elements, the coordinate system is tile-normalised right?
No it is all pixel coords
yeah, drawing isn't a problem, it's just drawing the right thing that's the problem 
...I should update map event markers and fix the layering at some point
Most things in the game are drawn at 4x scale
But there's no rule it's just aesthetics
Sometimes the source tx is already 4x scale (menutiles)
Game1.pixelZoom is what a lot of draw commands use (before the compiler optimizes it to just 4f)
pixel coords of the screen (1920x1080 for instance) or pixel coords in the game (16x16 for one tile)
Game1.tileSize is 64f which matches the space a game tile takes up (16x16 sprites multiplied by 4)
I don't understand what you mean by 16x16 for 1 tile bc it's 64x64 as matt says
Itd help if u just look at the draw code of an element similar to what you want
As in the texels, a tile is 16x16 texels
The tiles are 16x16, but scaled at 4x
Okay sounds good
There's no universal bounds to this since ultimately everything is converted to viewport coords for drawing
But of course your outcome depends on your fragment matrix
Which may be what you mean by 1920x1080
Another note is that
Game menus usually designed to work at 1280x720
If you look at shop menu at that rez, you can't see the portrait but u can see all the clickable stuff
Try not to booli the steam deck ppl basically
But that's what the UI Scale slider is for, so that regardless of how you design it, they can just make the menu extremely tiny /s
Heart event sneak peeks (plus my amazing notes)
Okay well I'm definitely gonna make these incredibly specific cutscenes by just manually drawing onto the screen then
and just blocking keyboard input till it's done LOL
One way ppl do that with cp is actually
Temp map with the desired CG as map tiles
Events do support something called temporary animated sprite for this type of effect it just sucks to use 
Yeah I was considering something like that, but to make monsters glitch I'd need hundreds of tiles while with drawing I can manually loop through images instead
One more question that I definitely wont find anywhere, can I hijack the output image right before it's displayed to move pixels around
You can make a bunch of TAS in C# too
Not conveniently i feel, unless you want to patch monogame itself?
It should go without saying that you should avoid making new Texture2D every frame
What's TAS
Temporary animated sprite
ohh okay fair
Can you run doom on stardew valley?
I am trying to figure out what the most random thing I can run doom on is
ofc there is that…
I wish to share a screenshot of an object.json I have created to spite my friend
It's funny
Does someone know if I use 9 (fish category) as a animal drop, it will generate a random fish?
I have not a clue, but I hope so
Oh bc it might drop a legend or smth?
I was making a trash item and I was imitating a trash item ingame (newspaper) and the game puts that in category 9, pretty sure. Let me double check
Ah no I'm wrong, it's TYPE fish, category -20. Carry on, but yeah, it could drop a legend or something for all I know
May I share my funny screenshot of an item I made a json for?
I believe animal drops are exact item ID not item query
You need extra animal configs
There's a mod called omni chicken
was very confused why trash was fish, so it stuck in my head
You can share whatever you like im not your dad
Just obey server rules etc
😎
My friend said tea can't be medium rare and I was like alright bet (this is purely a joke and I don't intend to make this an actual item)
random q about monster variety mod, since it basically uses AT as a base: if i'm retexturing the slimes, i notice the vanilla texture is 64 x 280, but the texture size for the slime in the monster variety thing is all 64x264. i am scared and do not want it to explode if i make them 280. do i just change the textureheight in the json and it should be fiiiine?
I don't speak any of the mods you just mentioned 😅 Sorry
If you are asking about Monster Variety, it doesn't use AT as base
it has an extremely similar format so i mistook that, my bad
It also contains 0 actual changes to draw code, works by swapping out the Texture2D at the right time
i am, though, yes
The reason why it has same folder format is just cus Tea originally made it as AT mod
ah. so... keep the textureheight the same as vanilla, or the same as the example?
Use the same sprite layouts as vanilla
ok, the mod doesnt so i was wondering about that. ill use the vanilla dimensions
it cuts off the 3 colored slimes at the bottom lol
Some sprites are actually just unused in vanilla
Monsters are fun like that
Another issue right now is that there's no easy way to make 2 monster variety packs compatible with each other
, i am still trying to work that out
For now you will basically have to do HasMod and conditionally load
oh im making reslime compat for vev so :P
Then u can just TargetField into the right place yep
yeth
You have a point, I forgot the legendaries
Just to double check I am correct. Sprinklers not working on the beach is a map property correct? It is not part of the sprinklers. In other words, To make sprinklers work on a beach you need to edit the map? Not the sprinklers?
Mods told me to put this here so:
I'm looking to com someone for three different mods (one is a custom sprite mod, a heart event mod, and a custom gothic building mod)
Can offer money or anything really
Dm me for details (mods said to discuss details in dms)
budget is 100$ for now (usd)
!commissions
If you're looking for people who do mod commissions (either art or code), here's a wiki page with a non-comprehensive list of people who do them: https://stardewmodding.wiki.gg/wiki/Stardew_Mod_Commissions
i assume you have seen this page?
yes, i also was told i could post this here incase anyone in the server was interested
fixed it
it sounds like you are looking to commission art assets more than cp mod so ask in #making-mods-art?
(i mean that probably counts as details tbh)
(yeah, but it's the kind of detail that gets people interested
or that some people are wary of when it isn't included)
i'll copy and paste it in there too, they just directed me here lol
(or that some people might be embarrassed to post publicly)
(either way i only mentioned it bc they were told by mods to discuss details in dms)
(ah, I thought they just said to move here, my bad)
Question: Can you MoveEntries for the Home entries in Data/Characters? Playing around with an add-on mod to rehome some old NPCs and wanted to try to change their Home without necessarily overtaking the Default.
if its a list and each entry has an "Id" field, it can be moved
Does anyone know what happens if you change your farmer's eye color to a color that's not fully opaque and should I try that?
i suspect you just see the default eyes on the farmer sheet
Okay that sounds logical 😅
Well, NPC Rehoming process works, so now I can easily drop instructions for people who want to put older/abandoned NPCs in apartment rooms, maybe.
I'm trying to have my mod use GMCM to configure button binds. This is what I have so far https://github.com/BlckHawker/Instant-Community-Center-Cheat/blob/main/ModEntry.cs#L84-L97, but I can't seem to find my mod name (Instant Community Center Cheat) in the menu. I'm failing to see what I missed in the docs https://github.com/spacechase0/StardewValleyMods/tree/develop/GenericModConfigMenu#for-c-mod-authors
you need to call the GMCM api to Register your mod
if you don't want to run your cheat more than once, i'd recommend against keybindings
use a console command instead
I have a built in check for if the player does run it more than once, it won't do anything
i have to agree here
having a keybind for something you're only gonna use once per save sounds wrong
well, it's not technically once per save. It varies on how much free space the player has in their inventory. Though I get your point. I will considering refactoring it in the future
im also not really sure what the point is 
why not just auto complete the bundle without ever giving the player items
i wanted to give the player the choice to do that. I just didn't implement that part yet
One thing at a time. Plus idk how console commands work atm, so I'm putting it off a little until I get more in the hang of modding
They're easier than key bindings and a config menu, lol
helper.ConsoleCommands.Add(
"mcp-reset-savedata",
"Reset save data associated with this mod.",
ConsoleResetSaveData
);
i mean I was going to need to config at some point, so I figured to put it in now
and then private void ConsoleResetSaveData(string command, string[] args){ }
tis all you need
how to get a list of all edible item?
iterate over object data, find entries with Edibility > -300
Isn't it technically != -300
Because -300 is a magic number, and everywhere it's used is an equality check
fwiw you cant get food or drink buffs below -300 bc that check does do a <= and not a ==
is there a way to remove tags from your mod? (these ones) it somehow got stcuk with the translation tag and apparently theres a percentage of people that filter that tag. when i open up the list of tags, its not even showing translation
Does someone know how to fix Fishing Trawler tilesheet/sprites? It's for personal use.
For those who don't know: the fish box isn't showing properly
Click "Tag this mod" next to the tag list, then click the X icon on the tag you want to remove.
I'm not familiar with that mod, but we might be able to help here if you have any specific questions when you try updating it.
[game] NPC 'LEE' failed to parse master schedule 'spring' with raw data '730 Lee_kt 5 5 0/1000 Lee_w 6 5 3 Lee_read/1500 Lee_House 21 10 2 /1700 Lee_kt 5 5 0/2100 Lee_Room 10 4 2 Lee_sLeep'.
System.Exception: NPC LEE has an invalid schedule with key 'spring': it requires a warp from Lee_kt to Lee_w, but none was found.
Hi what should I do to fix this, he appears at an event but after the event ends, his location is missing once again.
It's the same error that you got last night :) the map is still broken.
Yeah still the same error, but he did manage to show up on the Egg Festival
What did you find when you tried opening the Lee_kt map?
Oops sorry I missed your DM earlier! Mobile discord is so bad at notifying about message requests 💀
I was checking on maps, I'll share the smapi of the maps.json cause I tried to check on it after earlier
Ahaha it's alright.
I have the updated version here, but the tiles looks messy
This person is having the same issue
It was supposed to have a crate there
Oh those r Paths?
Yes
It is probably a tmx issue not tilesheet, did you get Tiled
Yes, I have it on my pc
Yep so find the tmx file in that mod and open it in tiled
(you don't have to ping reply me when i am still here lol)
[[modding:maps]]
There's a section on this page that explains what the paths tilesheet does
Is this an edit on Beach?
yes
Try patch export Maps/Beach
From smapi command
Inspect the exported Beach tmx to see what went wrong in the final result
translation didnt show up is the thing :/ just smapi, content patcher and v1.6. let me log in on my laptop and double check there again
the heck, the translation tag is gone lol nexus has been so wack lately
im blaming their shift to the new ui
hide the object layers
I think they're refactoring how they do translation tags
where it's tied to whether or not the mod is set to be a translation now
I could be wrong though, but we were looking at it earlier today
yeah for some reason that was checked and i did uncheck it earlier. im wondering if as i was zipping through things i accidentally marked it? and then nexus was slow to update the tag after i fixed it
The translation tag has never been good, ngl
Ok so the recoloured tilesheets aren't loading - only the vanilla ones are but no errors. Can someone take a look at my JSON? https://smapi.io/json/content-patcher/b8ca03f388614545b51dbfeb739519da
well it looks like theyre all loaded. but they arent gonna be used
@lucid iron I have to go to sleep right now, it's pretty late here, we can try it tomorrow.
you need to replace the originals
i assume your map is not using both fall_Lilybrook and fall_Lilybrook_Earthy at the same time
No, I don't think so. It only seems to be loading the vanilla version right now
The way that recolours work is that they replace the original tilesheets when the recolour is present. So your Loads for "Target": "Maps/{{ModId}}_spring_Lilybrook", etc are unnecessary and can be removed entirely and your EditImage code blocks need to be changed from "Target": "Maps/spring_Lilybrook_Earthy", to "Target": "Maps/spring_Lilybrook", etc.
aba explained what my point was, you're creating new images with your targets but that doesnt make your map use them
Ah I understand now, thanks both!
can warp totems be done with just CP... and if so is there any documentation on that (i couldnt find any from a general glance)
No, the warping part requires spacecore (I am pretty sure)
Hm... I guess people will have to deal with another requirement then 
Plus spacecore fixes a lot of weird schedule stuff anyways so it's better to have it ... and they get item descriptions for the furniture :)
time to look into space core documentation thank you both
Could anyone help me with some Tiled beginner questions? I'm a bit stumped with how to open the tsx/tilesets. when I try to open them up in an existing mod the file folder is prompting me to find the file and open it, but it doesn't appear to exist anywhere. what am I missing here?
Firstly, are you VERY sure you need to be using tsx files in any capacity?
Because usually it's not necessary and causes a lot of hassle.
(
hi im days late bc i was just searching for BETAS mentions but BETAS has 3 different GSQs for reading player mod data (and 6 more for equivalents for location mod data and item mod data), as well as a tokenizable string for reading mod data, and also BETAS actions/queries support tokenizable strings so you dont need EMP for writing and reacting to death stats (as there is a vanilla tokenizable string for playerstat))
Oh I see. I don't need it for anything I'm just poking around adn trying to match up the json instructions with where the images are stored.
The image is stored in there correct?
There is a very important distinction to make: tilesets and tilesheets. Tilesets are the name for the metadata about tilesheets, which are the images. Tilesets contain the reference to the .png file of the tilesheet and also information about tile properties and animation. Most of the time, your tileset information should be embedded into the tmx file itself rather than existing as a tsx file externally.
In terms of actual files, the .png file for a vanilla map will be in the Content/Maps folder (as an .xnb file); the .png file for your custom tilesheet will be in your own mod folder (ideally in a tilesheets folder or something); the .png file for a tilesheet mod will be in that mod's folder somewhere.
yes that makes sense! I am looking for the custom tilesheets I think. I understand how the meta date is basically paint by number for the computer to generate the map. I'm just not seeing where the tilesheet for the custom content is being stored in the mod assets?
okay I thought that was how it should be, but I am poking around aimon's Quarry overhaul and the custom shed tilesheet is no where to be found. I can't figure out where it's being pulled from if that makes sense
The actual .png files always stay where I've just said, but when we use CP to load the tilesheets into the game, we create an asset that contains the image (so to speak) and that asset is the one that we use as our image source in the maps.
good to know, though I'm not sure if tokenizable strings would meet Kantrip's goal there (or what it was specifically)
I just assumed they'd need something in either When or Condition
they can use it in a BETAS mod data trigger action to set a mail flag
I just downloaded the mod and there is no custom shed tilesheet?
Okay, thank you I opened another mod and can clearly see they have a tileset folder with .png. Yeah I was confused?
No I mean none of his maps are using a custom tilesheet in them
the shed itself is a custom asset I thought? or is the custom refering to the inside?
If you're referring to the tmx file, they're all "custom" because they're literally not vanilla maps.
I don't know why he decided to just name the shed interior map with "Custom".
Ah! I'm coming from the art side of moding so custom=new sprite to me. fools errand revealed.
The .tmx files are not images. They are xml files containing data that is used to construct maps in the game using the .png files (and various other bits and pieces like warps).
We open them in Tiled so we can edit them visually but you could create an entire map just by writing xml if you wanted to and loved pain.
No worries! The way that we edit maps, by the way, is by having all the relevant tilesheets in the same folder as the map file while we're editing.
Some people do that by copying vanilla tilesheets + any needed tilesheet mod tilesheets into their map folder in their mod folder and then move/rename/delete them for testing (and definitely delete them for publishing). Some people put everything into their Content (Unpacked)/Maps folder and then put the map in there for editing and move it back to their mod folder for testing. Some people create a "map making" folder that contains all the tilesheets they want and work on maps in there (similar concept to the Content (Unpacked)/Maps approach but without all the vanilla maps).
oooh i see
the vanilla map -> export -> custom map -> embed use case is pretty common though and does involve using a .tsx in some capacity
Yes it is, but I have found it's more common that people are doing stuff with tsx files when they don't even know that tile properties and/or animation exist yet let alone wanting to get them from a vanilla tileset.
So if I ask why someone is using a tsx and they don't know, odds are they don't need to be using a tsx.
(Yet)
Is there a way to check if I have gotten a mail flag?
Do you mean check for mod testing purposes (like you just see it in the console) or check in your json in order to use as a condition for something else?
Mod testing
patch summary full dds will show you your global tokens which will include HasFlag
That is alot of gobbity gook to go through...
The dds is just so it doesn't show you any mod patches and it's meaningless
It's not really?
Well is there a way to see the status of every player stat?
If it's to control a CP patch it has to be
I need some help, smapi isn't working, it's giving me errors that I can't read.
So there's nothing I can do to troubleshoot
!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).
no worries, common thing 
Oh. You slightly misunderstood, this is is for err logs. Which would work if I had one, but it's not letting me install it at all, every time I open the .zip file from smapi it gives me an error popup on my phone that I can't read because it's not there long, and I can't click it.
So smapi won't download
if you cant even open the zip file on your phone that seems like a problem with whatever you're using to open it, and not anything to do with SMAPI or stardew. either way, this wouldnt be the right channel to ask
Can you link the channel? Cause I can't find it.
there is no channel for general technical support, just modded technical support (and vanilla but thats not relevant here). if its not an issue with SMAPI, its not an issue for this server. if its an issue with installing smapi and not just opening the zip file, thats the channel linked in that governor command. however, if its for SMAPI for android, theres a different server for that entirely, as this one doesnt provide support for mobile SMAPI
!androidsmapi if that last point applies to you then you want this
There is an unofficial port of SMAPI for Stardew 1.6 to Android. Please see the wiki instructions for more information.
IMPORTANT: This is a highly experimental build and may be prone to glitches, bugs, or incompatibilities. We are not able to provide support if you run into trouble or compatibility issues; please use the discord linked on the Android SMAPI github.
Do not harass mod authors to make Android specific compatibility patches.
That's where I got it
then you use their discord server for support, not this one
Where😭 smapi linked this discord server
if you follow the link in that g overnor command, it links you to mobile smapi's github, where it links you to a discord server
as the governor command says, that is where you go for mobile smapi support, we dont provide support for it here. SMAPI for android is not the same as SMAPI for pc
Ok
Hi Button! How are you? Still commiting crimes?
depends on your definition of crime
ive swapped back to working on museum framework for now
Would a geese hit you with a stick?
i would hope not
I took a day off from crimes today. (Work was worky.)
I see, no crimes then
work itself is a crime
I have the week off but i'm in germany in the longest queue i've ever seen instead so i'd kind of prefer work atm
It's so cold
Better Game Manu just waiting for authors to merge your PRs for compat?
Pretty much.
Amazing
I'll probably ask people in #modded-stardew to see if they can find any other mods with compatibility issues once Pathos releases a couple updates. Wouldn't want to make a modded player play without Lookup Anything lol
Bless you for that lol
I thought I'd be helpful by linking to the SMAPI Android Discord and got hit with a ten minute time-out instead 😅
yeah, no server linking allowed here
Evidently 😂
glad you got it working!
I stayed up way too late working on art again, but I finished Mipha! Now I only have Sidon's spritesheet and Wolf Link's side view left to go...
don’t stay up too late, prioritise yourself
Hello all the nice people, I have a question regarding Tiled- I'm making a custom map (not a farm map) and my collisions seem occasionally cursed:
The bridge to the right is impassable : (
did you put the bridge tiles on the Buildings layer?
The bridge tiles are on a "Buildings3" layer, there are only regular water tiles on a "Back" layer beneath it. There is an object layer named acordingly "Buildings3" that contains Custom Property of Passable: T
Passable T and other tiledata/tile properties don't work on numbered Object layers, they only work on the base Object layers (Back, Buildings, Paths)
Ohhh, that is good to know : O
Should the bridge tiles be on the regular, not numbered buildings layer too?
as for why the bridge isnt passable: check if you have invisible tiles on the Buildings layer. you can place the bridge tiles on a numbered Tile layer still, but any tiledata must go on the Buildings Object layer (i.e. you can put TileData objects with Passable T there).
(side note: for in-game testing, i recommend using Data Layers for seeing which tiles are passable, impassable, and occupied)
Thank you so much for this resource, this will come in handy
How do i make an object pickable? I have a simple object added with content patcher and I'm spawning it on a tile using C# and it appears but i cant interact with it at all. Just wanna right click it and put it in inventory
You should also check if the water tiles you have under the bridge on the back later have the Passable property on them in the tileset. The Passable property makes tiles unable to be walked on if they're used on the Back layer. And I know some water tiles have them because vanilla uses them to stop people walking off single tile width bridges.
Well well well, I do see that the water tiles I'm using on the back layer have Passable: F property, so this could be the culprit
Yup that's it. Just use different water tiles and it should be better. By the way, Passable is one of the properties that's applied simply by having a value present regardless of what the value is, so you can't change a Back tile to Passable T to let it be walked through. It has to be removed entirely to stop applying.
there's specific water tiles that are set to Passable T in the outdoors tileset, it's best you look at the Forest map in the base game to see how the Back and Buildings layers tiles are arranged.
How do i finish the wizard ink quest in sve? I am stuck on the swamp
This channel is for making mods, you want #modded-stardew for help with using them :)
There are plenty of SVE players here in maincord who can help with gameplay questions though
My experience with it was just to give up and figure it out myself, nobody was very useful 
I usually just look at the SVE wiki
I had to fix the wiki because it didn't have some of the info I was looking for lmao
Had to look through SVE's code just to find what I was looking for a few times
Remember when you wrote that SMAPI Patch that allowed people to drive their tractors/ride their horses through TreatAsOutdoors maps?
Yeah, did it stop working?
No, but it broke something unexpected.
You can see where I pinged Pathos about it a week or two ago: #making-mods-general message
But basically, it's not taking into account if you're warping from and indoors map to another infoors map, so it dismounts you if you're in an indoors map going to another indoors map, which he states here: #making-mods-general message
Are both locations marked TreatAsOutdoors: true?
Hm, looking at this patch I wrote, I do wonder what happens if I'm using an or on two different values... it seems to work in practice for the original desired result
It does still work, but it seems to mess with certain features down the road, like when one player who was using the Tractor mod to go down ladders in the mines, it would completely delete their tractor, whereas normally it doesn't do that.
If you somehow force your tractor into the mines it doesn't delete it if you leave that floor?
Apparently not, idk I don't really use that mod often.
But it'll probably cause other issues elsewhere.
(One way to do it based on how vanilla does it, unsure if better ways)
The Nexus Mods app docs say that C# mods are the most common Stardew mods but that can't be right, can it? The last monthly stats post from Pathos said there are more than 10,500 CP mods alone let alone counting the other content pack mods, compared to only ~3,200 C# mods.
iirc, IsSpawnedObject is the main/only factor in whether they can be picked up, so anything that sets it should be fine
("CanBeGrabbed" exists too, but mostly affects destruction by natural processes or npcs, I think) (it's weird)
Technically speaking, it may be right if they aren't counting data storage files as mods. If they were only counting by programming language
Does that mean it's possible to make a mod for Stardew with a different programming language?
Technically, you just need to recreate everything SMAPI is doing in a different language. But since SDV is written in C# you've gotta deal with that trickery
I'm not sure how the nuget and such work when you're not using C#, but I think any .net can be used
And if u have a C# mod whose 1 job is to load a binary from some other language then go wild
Since it is already saying that "most" mods are C#, that implies that there already are non-C# mods for Stardew (or that they're wrong lol)
PyTK enabled lua mods afterall
Maybe if someone made lua mods they got counted then
I've seen people work on non-C# mods just because they can, but at any rate, I wouldn't put much stock in vaguely worded nexus info 
(pssst if you guys have opinions on the nexus mods app, you should go to modded-farmers)
Yeah i think they r just incorrect in practical sense
I was just curious about their summary of Stardew and wondering how much of it was written by someone who actually knows our modding or if it was written by an anthropologist observing us lol
(pickysaurus is there taking questions/ideas)
I'm not even sure what/where the app is, personally
just seems like Pathos's numbers are likely to be meticulous
vortex replacement with a file-free diet
you came here to chew gum and offer constructive criticism and you're all out of constructive criticism
Sure sure, let's all pretend I have good motives and have just run into blockers
Mod making amirite
What would a sdv specific tiled fork be like
Or would it be just extension
Hm, can't think of anything immediately that Tiled doesn't do that would specifically be better for SDV
Some like default settings perhaps and the inability to change things
Tilesheet management...
Like no offset and making sure everything is snapped to grid
I would like to have a tilesheet source path different than tmx itself
Also automatically name objects TileData pls
Oh yeah, that would be good lol
I dunno about the tilesheet source path, as the game itself is expecting something specific, so it would have to change in both places I guess?
Layer sorting button too maybe
Nah it's just to have alternate tilesheet root that the sheets r relative to
day/night tiles maybe?
automatically adding the TileData object the way stardew uses it?
So that you still end up with spring_Outdoors
I don't even know what tiled is written in (c++?) so i am just day dreaming here
I would love if you could specify tilesheet file name aliases for Tiled so it could use a completely differently named tilesheet for editing than what you've put in the tmx image source
hiya, I'm trying to modify the Better Beach Forage mod (https://www.nexusmods.com/stardewvalley/mods/5192) to include items from SVE. The items are listed in this format in the mod's content.json:
"SpringItemIndex": [
"Cockle",
"Cockle",
"Oyster",
"Oyster",
"Mussel",
"Mussel",
"Clam",
"Clam",
"White Algae",
922,
923,
924
],
I'll just have to add the item IDs from SVE (e.g. FlashShifter.StardewValleyExpandedCP_Dried_Sand_Dollar) to those lists, correct? And I'm guessing the duplication is to determine the ratios of spawned items?
oh, a way of tracking tilesheets from other folders so that they embed properly without tilesheet climbing without having to copy them into the folder and then remove them would be nice and is probably stardew specific
Iro im glad u like my ideas enough to echo them
Our idea ⚒️
Everyone needs someone else to say the same thing in a different way so the slow people can put the pieces together 
which is totally what I was doing, I wasn't just half-reading the convo and missing where chu already said it
I was being helpful on purpose
Good morning!
chu do you prefer chu or chue
It would also be nice to flip through the seasonal sheets quickly
morning atra!
Chu is chu plus the square root of e
You keep changing the part after chu in various places so I just defaulted to chu 
is this a case of 2 standing in for a letter not available in english or of a username being used as a name 
There were chu1 through chu108, but i defeated them all
For some reason I want to pronounce chu2 as "choot"
...chooty.
You did this to me.
I'm not going to be able to unsee that pronunciation now.
Name meant screenname here yes
This should be valid yes
Have you tried doing it?
Pytk lite is just for map things right? It doesn't call any extra codes like Lua's (or was it lau's? one if the two) does it? >.> I'm seeing if I can remove it completely as a dependency. I know its outdated and should be removed, but I'm nervous about breaking things lol
This is the second time that Windows has been completely unable to transfer GenericModConfigMenu.dll anywhere.
Isn't every version of PyTK just nothing now?
I thought it was literally just an empty file 
PyTK lite is just dummy yea
Ooohhhhhh
Fantastic, imma yeet it off the required mod list then. Thank you! I updated all the maps and everything too. so everything is compatible with 1.6 other then this one part of the mod which i just side eye and push under a rug and hope everything works as intended lol
Wai you do dis to me Casey 
Make sure to change manifest too
pytk lite (the "main" file) still has stuff in it (it's from 2023) but it's completely obsolete.
the pytk dummy (in optional files, listed specifically for 1.6) is the one that does literally nothing.
either way, yeet it and remove it as a dependency from any mods that still require it
Did you try restarting computer?
I have literally reinstalled Windows between its failures lol
I believe the manifest only required Tmxl but I removed that a lot earlier
but thank you for the reminder!
Sometimes Windows thinks it's cute to lock my files in being used limbo hell while it antimalware scans them
And then never stops doing that until I restart
So i remember hearing before that
The PyTK lua stuff is used for the sad ending route for toshinori
Yea thats the mod I've been updating the code for
Did you implement that with set npc invisible then
Tia has a personal edit for Toshi that removed the dependencies too
I overhauled a lot of the code to work on 1.6 or Toshi never would have never seen the light of day again lol
I will try that if it plays up again
Probably need to do some other stuff to hide the social entry too
Eer, yea. I'm not sure if Heartbreak mode will work in my version
thats what the lua did, i think. And I wasn't sure where to add it in. So Yea... just kinda swept it under the rug and crossed my fingers and prayed lol
Edit Data/Characters to change social tab back to hiddenalways
Yeah
And calendar, though it'd be maybe a bittersweet remembrance thing to keep him in there?
I wonder if u can SetNpcInvisible forever besides simply running that every start of day
(Man I wish I didn't already know about this ending!!!!!)
Right, but I also need to trigger that somewhere
I think. after an event or something probably
Edit his sprites to black and white...
No limit on the number of days you can set invisible for as far as I know
Cool
But the code looks like it should work without the lua.
And I honestly, am too much of a whimp to test it 😂
Data/TriggerActions can just run once Condition matches
worst case for infinite invisible you can have a daystart trigger action that resets the duration every day
Right I'm not sure when that condition is.
Just look up the max for int, because I can't remember the number, and set it to that
Yep gotta figure it out
roku's got a good point, though, nobody's gonna play longer than intmax days
After 2147483647 days, a miracle happened
That makes me wonder if the game can even handle playing longer than int max lmao
you can probably get away with just mashing 9, too. pretty sure vanilla does that for a few "forever" things
Year 19173961.13392857
Yea but then I would have to test it. And I frankly, don't want to 😂 😂 I can't handle character death.
I can admit that Im a whimp.
And I could just have it run every year on the same day to set Toshi to invisible for one day past the year.
If I was going to deep dive to test it >.>
I would love to do a collab! 😂
tia is probably at work, might have to actually ping 
Lol what even is this chu

I have permission to update the mod so any help would be appreciated. I know the events still cause crashes but I got spooked trying to turn the dummy events into trigger actions.
tia is responsible and only checks stuff during breaks
@brittle ledge How'd you manage your sad ending edit for Toshi? Chu and I think SetNPCInvisible on a trigger action based on some condition and editing Data/Characters to make social tab and calender back to hidden.
Toshinori mod is old, just like him
and is running off hopes, dreams, and ducktape.
🎶 I'm not afraid 🎶 to ping my friend 🎶 though they're at work 🎶 I just don't care 
@vernal crest
hi
It's like shooting an email over during work hours XD but discord
HI
Can't comment for tia, but triggeraction -> invisible is how I did it with OlderSeb
I am so very willing to help you with this too! I am really excited to play with him. Tia told me great things and I am ready to CRY
If he moves back to the city
Is his move permanent?
I mean his updated code is ready to play now!
Yes
I had to give him invisible festival positions
And lock out any more events with the "not invisible" precondition
I also have a short period where Seb leaves for 2 weeks and then comes back
The festival stuff might still apply over the short period though
I set Hiria invisible every season. In fact, I am the reason that UI Info Suite 2 and NPC Map Locations no longer show invisible NPCs on the map (because I noticed that they were showing up and did PRs) 
Oh I was asking about Seb sorry lol
Then the answer is yes (if bad ending) and no (if during rehab arc)
But you just said you don't know about his heartbreak ending!
Did you test him being gone forever by sleeping 1 million years? Or just trust?
You could be the one to test for me
🤣
I set it to 99999 days 😛
So trust lol
Honestly, now that I know how to make TriggerActions reapply themselves, I will update it to check each winter and reapply
I could! But...I would have to actually play his whole arc and that might take a while lol
So not trust (anymore)!
There is no way that I would sleep the require number of in game nights to test a 99999 day invisibility so I would just trust lol
Yeah... I haven't heard of anyone playing a hundred years in a single game, but there are some hardcore players out there...
I would leave that up to my users to test haha
lmao
I did test the rehab arc extensively though. I remember being quite annoyed at festivals
And now it's just silently failing to delete the GMCM folder. I shall rampage.
I mean, there has to be a way to tell the system, "Make Toshinori invisiable every year on the 3rd? of spring after year 3 if heartbreak config is turned on. Last 113 days." Which covers all four seasons plus an extra day for good measure.
Easily, yes
one of my favorite windows features is when it deletes files and/or folders but the file manager doesn't update correctly in response, so you're looking at the things and maybe you try deleting them again and windows goes "???" and you keep wondering why they're still there, and only when you manually hit F5 does it get the memo and the zombie files go away
As annoying as that is, ichor, I wish it was what was happening to me 
I'm pretty sure you could even have your config token in the Condition field of the trigger action if you set it up as a boolean
Okay yea it looks like the code does just do it for me
{ "LogName": "ScheduleDead",
"Action": "Load",
"Target": "Characters/schedules/Toshinori",
"When": {"HeartbreakMode": "true", "HasSeenEvent": "661716000"},
"FromFile": "assets/Schedule/ScheduleSpecial.json"
},
It basicilly just tosses Toshinori into the void somewhere with his special schedule of:
{
"rain": "600 Town 119 0 0",
"spring": "600 Town 119 0 0",
"summer": "600 Town 119 0 0",
"fall": "600 Town 119 0 0",
"winter": "600 Town 119 0 0"
}
Since you're changing it extensively enough that it wouldn't work with existing saves, would it be feasible to switch to string event IDs? 🙏
i think... there is some dummy events in there for existing saves already
Existing saves literally won't work because you've yeeted TMXL and Pytk
And i thinnk this might be the hide Toshi Lua that i was taking about:
function hideToshi(location, tilepos, layer)
print('toshi hiding start')
if Game1.player.mailReceived.Contains('toshiNeedsVanishing') then
Game1.player.mailReceived.Remove('toshiNeedsVanishing')
Game1.getCharacterFromName('Toshinori').isInvisible.Value=true
Game1.getCharacterFromName('Toshinori').daysUntilNotInvisible=2147483647
print('abracadabra')
else print('no flag')
end
end
who plays on heartbreak anyway

Yup that looks like lua and ME
That is one of the main reasons I want to play that mod!

if it were me, i would hide him in a private void jail (unreachable custom location) instead of "weird Town coordinates"
But yea, I think I could probably do it, reading the script it looks like it is triggered by the mail being received and then I can add the invisible toshi code, and maybe remove his spouse room /patio too?
but people can do that in the divorce tile in Yoba's i think.
yeah, just throw him in a warp room
....make him his own little fancy afterlife room? 
Aww you could make it all lovely and put his favourite things in it
i love that, actually. give him location dialogue too! so if players debug warp their way in they get a little easter egg
this is what heartbreak mode is about, right? fun light-hearted gags? /lh
undertale-style, I like it 
This is about the extent of my artistic ability
so it would be all normal map layers 😂 and a ton of sunflowers.
But yea, I could probably do that, which would also completely re-route the need for set him to invisible.
maybe
You still need to hide his social entry
I shall use a when script.
Where's this, chu? I may have forgotten it for mine
But i'll also wait for Tia if they already have the script ready, I can use that and give credit for the help!
if he can be your spouse, you would need more than this, since spouses stop respecting their Home location and most schedule keys
okay maybe just keep it simple and set invisible
This bit
Although Sebastian isn't like, dead
No, but there is a state in which he returns to the city permanently
Hoping no one goes that route, but it exists
I wonder if that would have removed the need for all the invisible festival stuff I did
No
okay I can't tell if this is super simple or if I'm missing something here
but when you make a map using Tiled
is there a way to spawn in an item at a specific tile? Like an item that you want the player to pick up?
I've been looking but the new google search engine is so horrible
and it looks like FTM might work to spawn things in, but it feels like a lot for a single item
it's a custom object
okay, that's the direction I was going in... now to figure FTM out
Once again I have forgotten about symlinks and copy-pasted a whole bunch of empty folders
I need a bit of help? Im doing animal bazaar stuff and im getting a weird error i dont understand the meaning of. can i post a log
Log Info: SMAPI 4.1.10 with SDV 1.6.15 build 24356 on Microsoft Windows 11 Home, with 43 C# mods and 35 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
it looks like there's an image it's trying to load, and can't find - a produce item. There might be something set as "null" in your code that needs to identify an image? Someone who knows animal bazaar might know more detailed, but I would check out line 130 in "BazaarLivestockEntry"
do any of your animals have ProduceItemIds or DeluxeProduceItemIds set to null
Hmmm yes it does the deluxe items
browsing LB's source code looks like it's throwing the ol "object null" error
probably a bug
but for now set them to empty arrays
Oooh okay thank yiu
@amber adder
The fix for your mod!!
So instead of null? Just put {} ?
[]
Hi loves! The Green Tunic is the Link Shirt, right? Gonna give that one some Link-worthy buffs. (What are Link worthy buffs? Speed and attack?)
a dictionary of keys to values
I know how to do things but terms I don't know
I still don't know what the squiggly is called lol
Link has the "courage" triangle of the triforce
gold coins from smashing crates/boxes in the mines
WHAT THAT IS THE BEST IDEA EVER!
yay!!
I suppose maybe think of [] as like a box of things (because it's all square like a box), so like an array/list. Remembering that one thing should at least make the other easier to keep distinct in your mind. 
(And have you played Cave Story by any chance? This is relevant to this question!)
I haven't no
Aww, well that's her name. It's a curly brace. 
Same thing, yeah!
That's what it's called I forgotten
Can I ask what : means?
What's it called
I call it buttons
working on a moderate size outdoor map for the first time and it's fairly intimidating 
colon
a colon?
it separates the keys and values of a dict
and then ; is a semi-colon, i think
Ooh a colon? That's cool
So I do {} then?
[] instead
Do the door handles
Or array?
Brackets? If the { is curly bracket is a [ just a bracket
Or is it square bracket
Square bracket :)
https://en.wikipedia.org/wiki/Bracket english is a land of contrasts
Hell yeah thank yiu
What would I look up to learn symbols
It's something I've always wanted to know it what the keyboard symbols are called and do
Anyone happen to know off the top of their heads wherein the game handles barrel breaks?
i've learned just now about "round brackets (BE)" and i'm hooting a little bit, never heard that one /lh
I call those hugs
But round bracket sounds way more professional
Oh!!! Y'all remember how I was considering making my own game?
BreakableContainer.releaseContents
I started learning code and I've managed to code a collision system, player movement and camera functions
YES!!! Thanks Selph!
It looks way simple but look!!! I did the thing
I even have a vertical movement set up
Come nerd out about it all in #programmers-off-topic... even share the code if you want! We're not scary in there. 
That's swesome!!! You are well on your way!!!
👉 👈
By the end of the week I expect this to be a full arcade game playable in the saloon
Ok I'll do that once I scroll up and read what I'm doing 😂 I got the tag when I was afk taking the dog on a walk
If you look up computer symbols on wikipedia it will probably give you a good overview
in fact, we love to see nerdy things 
We do. It sustains us.
(Right now, we're witnessing Bouncer being unhappy in there, though.)
what did you do to him 😔
yeah, I clearly missed something in there, there are like a million unread messages 
So JojaMart_Replacement I found to be really cool, so I thought what if I tested it with a custom location and then removed the mod; would it do the same thing? so I did Custom_LK_ClearingHouse_Replacement thinking it would redirect them to Town in the stated place. Does this Replacement command really not work for custom locations? Is it really needed to have the game check if X mod installed, is there not a way for them to just ignore it and go on with their day?
What was your C# code for it?
sadly, the schedule checking for accessibility is hardcoded to JojaMart, Railroad, and CommunityCenter
so close!
switch (locationName)
{
case "JojaMart":
case "Railroad":
if (!Game1.isLocationAccessible(locationName))
{
if (!this.hasMasterScheduleEntry(locationName + "_Replacement"))
{```
(community center is farther down but doesn't check for a _Replacement key)
That's lovely, and it's not possible for one to just make an edit file like they might to nearly anything else within the game? Due to it being hard coded?
you could patch it with harmony, if you're doing C#, but yeah there's no way to make a data edit that will fix it
(if you do this, be aware that Game1.isLocationAccessible is also hardcoded for the vanilla locations and would likely need patching too)
Much easier to just have different schedule patches depending on which mod is installed
Interesting, and useful to know; I think that's above my skill level right now unfortunately. Guess I will need to go back and do said schedule patches at a later point to fix up these times they enter said other locations. Thanks again for the help
1/20 chance for getting coims from wearing the Link tunic is prudent, perhaps?
(It's been way too many years since I played the original Zelda, I forget how often they came up. Plus I played it on a PC with cheats).
have it check your status/inventory and give you stuff you are lacking. classic zeldos used to give you lots of bombs/arrows/hearts if you were running low on them
have a low % chance to spawn the trinket fairy for a few seconds (so it can give you a quick heal and then poof)
have the buff also play link's "hut" "hya" noises when you swing your weapon
anyone know of a mod, or know if it would be easy enough to make a mod, that would make the mining elevator progress separate for each player?
Where does the game control weed breaking?
that'd require C# and dealing with mp code, so on the advanced side of things
but with enough C# anything is possible
Object.cutWeed
Thanks!
Hey guys sorry if this isn't the right place to ask but I'm interested in helping with translating the Baldur's Village mod and I have no clue where to find the people who are already working on it
(doesn't say on the mod page, seems to be completely independent)
Any leads would be greatly appreciated💜
Is it possible to place map warps on spouse patios? I placed the warp property on the patio map and the game seems to recognize it, but it does nothing when I click it
Heh. Link shirt now does cool things. Link shirt now gives bombs, hearts ((O)930), n bombs (287), the middlin size cause they are classic looking. A bunch of other shirts will make differing weird drops too. LMK if u have another shirt u like a lot/think is cool, and want some drops or something when breaking barrels/cutting weeds!
itd require C# for sure, but i actually think itd be really really easy. you dont need to change elevator mechanics, just edit the menu to not display any buttons past your own personal lower limit
Yeah, this could be... theoretically pretty simple. Store the player's lowest floor in the player data, and just use that when you open the menu.
yup, that was exactly what i was gonna suggest and/or do if kick wasnt gonna make it themselves
i actually dont think you even need moddata? Farmer.deepestMineLevel seems to exist and be local to just you
They have a patreon try there maybe
Well I wanted to ask around before I contact the creator of the mod
I didn't find any info on the patreon
For general "how 2 i18n" stuff you can ask here, but i assumed you wanted to get permission from creator
the creator of the mod should be the first person you contact about translating their mod
Sorry I didn't know
This is all they had on the mod page
So I assumed I had to look for people working on it somehow
oh, do you mean you wanted to contact other Translators?
Yes
theyre just saying that if you wanna translate it into like, spanish, and someone else already is, you should reach out to the person doing it if you want, but you're not actually required to
Yes but I want to
I just don't know where to find them
and if you dont see or know of anyone working on a spanish translation (not unlikely since i doubt many translations are made by teams doing it publicly before release) then you can just do it
there is no answer to "how do i find them"
they either exist or they dont
if they dont exist then you cant find them but we cant know they exist or not
I guess you can at least check comments
check the nexus requirements for Baldurs Village to see if one already exists
but if it does its likely already finished
Hmm?
(and by nexus requirements i mean on the Baldurs Village page, in the same set of dropdown boxes as the requirements tab, theres a Translations dropdown if any exist)
There's no translation yet
Hence why I'm looking for the people potentially doing it
if theres none yet then theres no one you need to ask
I'm looking for people to collaborate with
if theres nothing in the comments and no translations posted, then theres no one working on it, at least not publicly or in a findable way
I don't wanna start doing it on my own just to find out other people are also working on it
i havent seen anyone in here talking about Baldurs Village or translating it, so i believe for the most part people here have the same info about it as you do
Oki thx, I'll keep asking around
translators usually just do their own thing and dont talk about it much aside from on the nexus page itself
or at least not in here anyway
(or are machine translators...)
I see, I didn't know, thx for the info
First pass done. 3+ MB of flat text. Grandpa needs a break now.
Guys, is it possible to place map warps on spouse patios? I placed the warp property on the patio map and the game seems to recognize it, but it does nothing when I click it
When making chairs for a custom tilesheet, how do I make them sittable?
You need to add ChairTiles
This mod implements them
Thanks!
Ok, so from looking at that mod, I've gathered that I will need to make a tsx? I'm a lil stumped
things i wish were more clearly visible in the Harmony docs: the fact that you can write your transpiler codematches like this if you add a specific using statement:
matcher.MatchStartForward(
Call[AccessTools.PropertyGetter(typeof(MineShaft), nameof(MineShaft.lowestLevelReached))],
Ldc_I4_5
).Advance(1);
matcher.SetInstruction(Call[AccessTools.Method(typeof(ModEntry), nameof(GetLocalLowestLevelReached))]);
so i dont have to write the ugly new CodeMatch(etc, etc) or new CodeInstruction(etc, etc) every time
Call[
]
Oh it always implicit types me though
So i just write [new(blah), new(blah blah)]
i still like that less
I want to add a new bar next to these two bars using the same texture. For example, a drunkenness bar. How can I add it?
than just Ldc_I4_S[5]
I don't get why it uses [ ]
How terror
can use it to set the operand or the name
not that i know why id need a name for a codeinstruction
You do not, I just added one so people would have the animations for the animated objects on the tilesheet already in place and not have to look them up. It's optional
Ah ok, so how do I make my chairs sittable?
No I mean for my custom tilesheet
Thank you!
You can see how I did it, but there's the thing I referenced to make it happen
@lucid iron did you see this error for animal bazaar? Not my error but thought you would want to know. https://smapi.io/log/22c8e4b6de2e43b79a009ae9d82a9dfd
Log Info: SMAPI 4.1.10 with SDV 1.6.15 build 24356 on Microsoft Windows 11 Home, with 43 C# mods and 35 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
probably subscribe to one of the SMAPI HUD rendering event and then add your code to draw a bar
https://stardewvalleywiki.com/Modding:Modder_Guide/APIs/Events#Display
you'd copy the code the game uses to draw those bars, move the coords to the left and change the icons, and then run them
12:48:20 WARN Livestock Bazaar Got invalid Texture on farm animal: albinoRabbit
I put that there for mod authors
It just means their animal is broken
Oh yeah i saw it too but i had to leave and forgot about it
Answered here: #making-mods-general message
But this one is for the actual animal walking sprites
i try, thx
You can let fellowclown know they were the one asking about it.
I just wanted you to know in case it was something you needed to fix.
I feel like there is several layers of telephone here 
Anyways I'll try to clarify that error more, it is kind of important
I need to stop trusting non optional annotations on the data models
well even the game itself doesnt trust it (the code for produce checks that (Deluxe)ProduceItemIds isnt null)
True, Don't you just not include it if you don't want it.
Well yes, but ideally my mod doesn't explod if someone did
not 100% similar but my mod got hit with this problem some time ago
a code branch of EAC that handled harvest tool equalling null exploded because some mods were setting it to "null"
Yeah the thing is newtonsoft doesn't care
It can make anything null
Oh, what's this?
I knew this existed because Brainz has talked about it before
Just not....what it was
And I use my own which uses implicit conversion operators lol
dont get too excited i think its actually broken in SMAPI's version of harmony
or if its not, i couldnt actually get it to work, it was just silently failing bc harmony treats empty codeinstructions as nothing and thus an auto match
Can someone explain this part to me? I'm trying to edit ChairTiles Data and I understand it other than the numbers in the entries and what they mean. Specifically this one
Take the x/y coordinate of the top left most pixel and divide by 16
The coordinate on the top left of my sofa?
No, the coordinate of the square your player is supposed to sit on
Ah ok thanks
Is there a way to create a character, then export the images/spritesheet of the character (farmer) I created?
Effectively no
I wonder if this is actually useful, or if I am cooking too hard. Overlays. Example: ```cs
public class TestOverlay : IDisposable {
private readonly InventoryPage Page;
public TestOverlay(InventoryPage page) {
Page = page;
}
public void Dispose() { }
public void ReceiveLeftClick(int x, int y, bool playSound, out bool suppressEvent) {
suppressEvent = false;
if (y > Game1.uiViewport.Height / 2) {
suppressEvent = true;
if (playSound)
Game1.playSound("Duck");
}
}
public void PerformHoverAction(int x, int y, out bool suppressEvent) {
suppressEvent = false;
if (y > Game1.uiViewport.Height / 2) {
suppressEvent = true;
Page.performHoverAction(-100, -100);
}
}
public void Draw(SpriteBatch batch) {
SpriteText.drawString(batch, "Hello world!", 0, 0);
}
}
// then...
API.OnPageOverlayCreation(evt => {
if (evt.Tab == nameof(VanillaTabOrders.Inventory) && evt.Page is InventoryPage inv)
evt.AddOverlay(new TestOverlay(inv));
});```
Result:
I don't seem to understand what this one is asking for?
ok that’s it i am learning C++ so i can make a new inventory page with it, what inventory page you may ask? i dunno
Why would you learn C++ for Stardew modding
Isn't it C#
It is, yes.
isn’t it C++?
oh
i thought it was C#
well i will learn C#
i am thinking it will be something like when you go camping in pokémon, you can pet and play with your animals and interact with them more, giving more friendship n stuff
I should specify I'm editing ChairTiles
I think you should cook harder
but that’s future me’s problem, present me is relaxing in bed
Anyways, this should in theory help people avoid some harmony patches so long as they are doing simple things and also are willing to depend on BGM.
CP hud 
I need those goose

Hm i don't quite understand how the overlay learns about the menu position
The overlay has a reference to the page instance when it's created. Up to the user to store that and use it.
Overlays are also recreated if a page instance is recreated, which is why storing the page instance is safe.
asdfghjkldfgfj i spent 2 hours just to realize i forgot to load the image 🗿 this is what happens when you stop modding for months
This may be a silly question, but, is the only way to make a custom NPC to draw one yourself?
If I want one to walk around etc I need to actually draw all the frames?
Or pay someone to do it for you.
Bummer
everything a npc does in game you need art for
this is for when you need to draw a Front layer of the seat over the character when they are seated
There's a png named Tilesheets/ChairTiles in vanilla that's all "front"layers of various seats facing up, and that's where it looks for that in vanilla
If your sitting direction isn't up, then you can usually skip that part/leave it blank or as -1.
Unless it's a sprite that's got a table or an extended arm/side in the way visibly or something.
truly speed
it only took so long bc i got distracted with unnecessary harmony stuff
also testing multiplayer mods takes up like half the time you work on one
I need organizational advice for my mod? I have 25 different npcs, each has their own folder and files right now which is making over 25 different character folders so I'm wondering if anyone has any ideas of how i can condese these files in a originized and conhesive way
hmmm i see the data folder though doesnt have everything in a folder?
Even just following how the game puts all the disposition/NPC basic data in one Data/Characters JSON would likely condense your code.
i feel like if i had 25 NPCs the data/characters edit wouldnt be the main worry though i can see why you'd want a separate one for each for organization
but i think just trying to remember your folder structure and how to get the right assets is just a lot easier if you know it has to match the unpacked content
I try to do one JSON for Data/Characters entries, one for Event entries, one for dialogue, and I leave all my Location data in content.json
like you dont need to remember how to dig into NPCA's portraits, its just Portraits/{{NpcName}}
Ah ok! Mine is facing right so I can just skip this part?
Oh the asset structure is fine its more the data structure
the same goes for the data. my event data json would be in Data/events/{{location}} for example
if you're not sitting in an armchair or something that would need to be drawn over your sprite, then yep, you can just leave that as // or /-1/-1/
-1 is a default
Have you heard of the good word of LocalTokens
a folder for data, a event folder and then the events seperated by location?
well, all under one "assets" folder
Gotcha. Mine is a sofa so the armrest would need to be in front/drawn over. What do I put there in this case?
again tho thats just me, id just find it easier to remember and organize personally if i match the game
I think there is confusion, my assets are a different folder, things like images are assets to me and then data is considered data
admittedly its also coming from a very C# mindset right now where its easy to dynamically iterate over these things
yes, i know.
my advice was that i wouldnt put them in a different folder.
dang it, my clipboard's all messed up
oh hmmmm
was trying to copy/paste my message again with the reply. LOL
I didnt consider that
i do want to emphasize tho that how a mod is best organized is a very very subjective thing
You would need a Tilesheet file with the front layer of the armchair (so the armrest) on it, and you would set that asset path (the load target) as the last field (Alternate tilesheet) in your ChairTiles entry
if its organized to you and you can understand your structure and how to find things easily, then its good
I personally like stuff separate into folder rather than bundled into one json. But that is more because I edit other mods a lot and it is easier to find stuff. I am sure as the actual modders less is better.
And this overlay nonsense is live now in my latest preview build. Time to go have dinner~
@sour sleet vanilla lays theirs out like this, with the bench side views being the first tiles in this sheet:
i thought you and your partner delegate the mining duty 
did u see the post i was replying to with that
i did yes, just reminded me
So I would need to make a separate tilesheet with just the armrest on it? What about the coordinates?
my partner does the mining and i use the elevator after yes
i do not plan on using this mod
give how SC work does this also make em track the highest floor separately?
SC doesnt have an elevator
your coordinates would the be tile coordinates (16px = 1 tile) on the alternate tilesheet that has your front layers on it.
no but theres a number on ur user profile page
im not sure what you mean then
all it does is replace the MineShaft.lowestFloorReached number on the MineElevatorMenu constructor with Game1.player.lowestLevelReached, which is local to just you
(and also in GameLocation.performAction where it checks if the elevator works at all)
Breakdown of a ChairTiles entry:
"sheet filename/tile X/tile Y": "width in tiles/height in tiles/direction/type/draw tile X/draw tile Y/is seasonal/alternate tilesheet"
draw tile X, draw tile y, and is seasonal (when is seasonal is true) all look for tiles on alternate tilesheet.
the MineElevatorMenu also does a Math.Min with your lowest floor and 120 so SC is handled automatically by the game
this number
i dont see why itd change it at all, that already is only a local number
Ohh that makes sense. So for chairs that aren't using a front layer, the last few entries aren't needed
since there is no SC progress to share in the first place
huh i thought this was read from networldstate
MineShaft.lowestLevelReached
obviously its not important for ur mod
i didnt see it when i checked, but its possible i missed it
its not important either way though yeah
its not the one used for achievements
(or the qi challenges, or geode rewards, etc)
AFAIK they aren't optional, except for alternate tilesheet, so even if they don't apply, you still need to leave the / to note the division of delimited fields.
so really im not sure why the game uses networldstate for that one if it actually does, if anything i think it should be the opposite anyway lol
Got it. Thanks for explaining 
(i can confirm everything before the last field in ChairTiles is required and the last is optional)
you will get index out of bounds errors if you try otherwise
(thanks Button)
someone with ChairTiles experience would know more than me but i dont think they can be empty either
even if not required
fair, I think the safest thing to do is -1 instead of empty
I know some other delimited fields will default if left empty but I don't know that ChairTiles does that.
the instructions and code also seem to me like the drawTileX and drawTileY and isSeasonal all read from not the alternate tilesheet, too, but again, ive not used ChairTiles
like it looks like theyre just used in general
(Optional) The asset name for the tilesheet from which to get the draw tiles, using \\ (two backslashes) as the path separator. The default value is TileSheets\\ChairTiles.
That's for alternate tilesheet per the wiki.
and "The X and Y position in TileSheets\ChairTiles (or the custom tilesheet) to draw when the player is sitting, starting at 0." seems like its talking about the tilesheet you've defined in the key, no?
it doesnt mention it being for the alternate
chairtiles is always confusing to me
well, considering that ChairTiles is not the default tilesheet for the key, and is the default for alternate tilesheet... 😛
It cannot be the tilesheet in the key.
so if you set -1, then...
hi, im new to this and i was wondering if i could get some help on making custom player sprites
you will be drawing the -1st index on TileSheets\ChairTiles
yep, vanilla does this for anything that doesn't have a front layer, since that's the default tilesheet for draw layers.
ChairTiles data model in 1.7 pls
!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!
also be aware custom player sprites, depending on how "custom" you want, may be very difficult and you may want to look at Fashion Sense instead
Also furniture
the files to edit would be Characters/Farmer/farmer_*
I had to write a formula just to help me break down the furniture delimited entries so I could understand it, LOL
+1 on its kinda hard yes
I know if I do an EditMap to add NPCWarps it breaks the vanilla NPCwarps, is that the same for normal player warps?
for normal player warps, you can use AddWarps to append
Alright, ty!
*prepend actually, warps added later go first
ok i think im late but i was literally looking for a mod like this yesterday, thank you
So if I add player warps in a JSON it wont break the vanilla warps? That is all I need I know.
the mod isnt even an hour old so you're not too late 
I did ask Pathos about making AddNPCWarps a thing and he said he'd look into it, so, in the future that should be less dangerous to add also. 😄
You can't text operations?
I did ask about how you'd use Text Operations to do it a few days ago, atra, but nobody seemed to know...?
For AddWarps if I want to add multiple do I need a new string or do I put all the warps into the 1 string?
the docs say change the value for an existing map property hm
i will go try thing brb
"AddWarps": ["20 3 FRL_NPCApt_PelicanValleyLoft 22 22"],
Example from Pelican Valley Loft apartment mod
So it is just separate strings in a list?
"AddWarps": ["22 24 Mountain 26 29", "23 24 Mountain 26 29"], this one's probably more useful to you
Yeah that helps more, ty!
[Content Patcher] Can't apply map patch "(CP) MMAP Examples > Include woods.json > EditMap Maps/Farm" to Maps/Farm: TextOperations > entry 0 couldn't be applied: path root 'Entries' isn't valid for an EditMap patch
it didnt like it 
TextOperations does work on Warps and it doesnt need AddWarps
but TextOperations only works on existing map properties
hm wait i had unrelated mistek
if the map property doesnt exist, you must create it with CP, but then if multiple people do that, they will overwrite each other
ok it likes it
{
"Action": "EditMap",
"Target": "Maps/Farm",
"TextOperations": [
{
"Operation": "Append",
"Target": [
"MapProperties",
"mushymato.MMAP_WoodsLighting"
],
"Value": "T",
"Delimiter": " "
}
]
}
So AddNPCWarps would still be needed in case you aren't sure if there's a map property for it yet.
this worked and gave me the woods lighting
Assuming it checks and adds the map property if it's not there?
your farm did not already have WoodsLighting MMAP propertyy on it?
I don't understand how you'd target a property that doesn't exist yet with "Target": []
the docs imply you cant
I wouldn't expect you could
so if chu's worked regardless then it confuses me
it did not already have the map prop
this is a custom map prop from unreleased version of mmap so i'd be surprised if it did
doc may just be wrong who knows
if you put in a completely nonsense property key like just a keysmash, does it add it to the map
instead of WoodsLighting
or ig if you test it without mmap thatd also do it lol
well. i guess the docs are wrong then?
i guess so, or just limited
it specifically says "existing map property"
So how would you add a property to a map that someone else is also adding to?
please ignore what i said as it was based on incorrect docs
well, how is it true
"there be spooders in here ::::)" is not an existing map property in any sense
it definitely lets you change the value for an existing map property too i mean
but the wording implies you cannot change a non-exist map prop
which is why we r all confused here
it also says the only valid path is the name of a map property to change but not to add
that might be refering to the way text operation targeting normally work
I mean like
i.e. u usually target Entries which i also got wrong the first time
It would be nice for it to work,
well it does atra
the issue with the docs is that it does but the docs imply it shouldnt
@ivory plume can you clarify EditMap TextOperations docs? We seem to be able to add whole new map properties by doing this but doc implies we can't
a proper AddNPCWarps would be nice ofc
tbh if it already works im now not sure what the benefit of addwarps even is besides just being a shortcut. if that's all it is then that's fine too I just thought there was more reason
I'll clarify the docs to say "add or change the value"; thanks for pointing it out!
AddNpcWarps is tentatively planned for the next Content Patcher update.
I still want AddNPCWarps, it's way easier to remember
there r a few vanilla things that are some kind of "list" as a big ol string and they dont delim very nice
AddWarps and AddNpcWarps are basically equivalent to a prefix TextOperation with added validation (e.g. it'll make sure your warp syntax is correct and log a specific error if it isn't).
Hi, do you guys know of any mods that make the white round stone paths from the town buildable? I’d like to know if I ended up making one if it would be redundant. I’m think of having all three versions able to be placed along with the regular randomization that comes with paths normally as options for the mod if I make it. What do you think?
like for example Stumps 24 6 3 29 7 3 26 10 3 46 6 3 34 26 3 41 26 3
Tbh my bandwidth is bad
these r triplets so replacing a specific stump seems very hard
not sure how you'd handle this without hardcoding to each property tbh
unless you made the user set how many values are in one value
but warps actually have demand from multiple mods editing 1 thing together
whereas stumps is not that big of deal
you also don't need to worry about delimiting with warps as long as you pretend or append with a space anyway
Stumps arn't hard coded to regenerate only in the secret woods, right? I can use the stumps map property anywhere?
I know how to add interior doors but how can I make it so that they are locked by friendship like in vanilla?


