#making-mods-general
1 messages · Page 433 of 1
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.
debug fin "item name" my beloved always did the trick, so I never used that
basically you choose the crops from a list, tell if you have the agriculturist skill and if you are using any speed-gro, what day you plan to plant them and then show what crop give what exp and which one gives max (season wise or year wise)
i would say it also depends of the context. With VMV i can have harder stuff because it's not slowing down CC completion
if you do care about CC completion it is harder to balance because the players expectations will vary widely
(i would never install a mod making CC slower than it is, CC slower than a year is too much for me)
sounds like a bunch of UI work. a bit involved but not impossible
either way yeah peruse the c# guide
If I’m honest. I don’t care about CC completion I am not tying any farm progress to CC progress
You shouldn't be loading one image into two different assets like that, there's no point. If every object is on one single image, you just need one asset. If you have more than one image, your FromFile needs to be "FromFile": "assets/{{TargetWithoutPath}}.png" so that it will load all of the images instead of just one.
You also still have more than one Data/Objects patch which is unnecessary. And your Texture paths are pointing to the wrong thing completely. They need to be pointing to {{ModId}}_card1.
Lol I am definitely getting a harder CC completion mod next time I play, it's boring completing the CC midway through the first year which is what happens for me. But I also knew Husky wasn't doing a CC mod.
I’m making a scope creep farm 😝
ooo ok let me looksee here
For some reason, when persevering flavor, the machine wouldn't make multiple stacks. Yet when I removed the flavor preserves, it produced the 4 to 8 items.
Could just be something on my end.
Last question: do you have an example of the custom cask options? I looked on your GitHub and didn't see any, unlike with other machine options you added.
this
are you using vanilla machine data’s CopyColor? if so that’s actually a vanilla game bug (try installing https://www.nexusmods.com/stardewvalley/mods/31499?tab=description and see if the issue persists)
Thats a bug ingame I believe, there should be a mod to fix it
beat me Selph
re: I don’t have examples for custom casks yet, I was lazy
for the most part you can set the required CustomFields fields and then copy the vanilla cask output method

Hmm, tried that and it failed
!json pls
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.
I'll send you the json when I get home in a few hours. Gotta go do normal job
ok take 5 million trying to get this to work
yaaaa something like this but maybe it calculates what day of what season you are in and shows which one gives max exp for the rest of the season or year (maybe add which gives most money later)
same
Yeah feel free to go build upon it
is there a way to hide the Galaxy SignInSteamAPI error when testing mods from a terminal? It puts red in the logs, which is not cool.
!linuxmp
Due to a security update to glibc, Linux users are having issues connecting to multiplayer (With the game hanging on the "Connecting to Online Services" screen) - While we wait for an official fix, there is a temporary solution available here: #1377481158509465703 message
and you can select or deselect crops to use the seed you have on hand
@lucid iron what did you use to make that? like C# or what
are you sure this is related? The error is just red in the log, it doesn't hang like described in the linked message:
[22:21:06 ERROR game] Error initializing the Galaxy API.
TypeInitializationException: The type initializer for 'Galaxy.Api.GalaxyInstancePINVOKE' threw an exception.
---> TypeInitializationException: The type initializer for 'SWIGExceptionHelper' threw an exception.
---> DllNotFoundException: Unable to load shared library 'GalaxyCSharpGlue' or one of its dependencies. In order to help diagnose loading problems, consider setting the LD_DEBUG environment variable: libGalaxyCSharpGlue: cannot open shared object file: No such file or directory
it’s not mentioned but yes those red errors are related
C#, and a UI framework documented in that page i linked
they’re just harmless until you try to get online
i think im gonna take a break for awhile and get some sleep
ive been doing this since yesterday morning with no break
This shit happens because gog dll is not compliant to some glibc release iirc
It's benign if not coop and fixable by replacing the dll
icic thanks
I'll edit this to what it should look like instead and then you can compare and ask me about the differences so you can understand.
huh, these files to replace are downloading at single digit KB/sec, is it a discord issue or a me issue? cuz I'm watching youtube at 720p with no issue
oh, hold on, I'm up to 45KB/sec!
i really appreciate it
yeah, fixed it, thanks
Y'all ever have a dev version of your mod so long you forgot you didn't release it
It's undergoing json surgery for now so I guess the next update I been working on is just bigger now lol
Yep! thats the state of like 6 mods, it's confusing a times
My last actual public release of profiler was like 2 years ago at this point, and is hard to remember what is and isn't in that public build
If I had seperate repos for my mods I could do a develop and release branch but it's a lot harder when all of the mods are in the same repo
Just doing git tags for public releases would do the same thing
Good point, I didn't think of tags
you have absolutely no idea 
I'm personally a hater for separate branches for develop and main (and release branches for anything that doesn't actively maintain and support multiple versions of the same codebase)
i use release branches locally but i delete them once the merge is done
and i do have dev and prod branches but i'm sort of neutral on that one (tags do a good job of "what was the state of the code in the release")
i do like the idea that if someone goes to the mod's repo on github, the thing that appears right away is what's in prod: the most recent release, as it was then
I'm pro feature branches (feature/my-awesome-change) as long as they don't go nested, but not release branches (eg releases/1.1.0)
i'm a fan of master-develop-feature, though i don't have many projects that have so many ongoing different tasks that they end up using it
i do like checkout -b release-1.1.0, do a few things on it, then merge it to prod and branch -d release-1.1.0. i don't know if that meets your criteria
I've just had to deal with too many merge conflicts between master and develop over the years for it to be worth the effort, and doesn't do a good job with quality control unless you also do code freezes. (Had things poorly tested sneak into prod because it merged to develop right before develop promoted to master and shipped) I much prefer main being prod-ready and do more testing in the feature branches
Outside of name I would call that a feature branch, release branches are used for permanently housing the point in time releases so they have somewhere to back port security fixes to
oh i see. yeah i don't do those for stardew mods
And majority of codebases don't actually have multiple supported versions in parallel
But blindly follow git flow anyway because they don't ask questions as to what problem it's trying to solve
Note I don't follow my own advice in my personal repos because a team of 1 doesn't need structure, particularly when I don't have ci/cd that would like that structure
obviously if you want to support multiple release versions, the answer is JDSL
Random question. I know I can do this easily with C# but im hoping there is maybe an easier way without additional coding
I want to create a sprinkler styled object. But instead of watering crops, it has an increased chance to spawn foragables around it.
is this a C# task?
Yes
I would make the object a big craftable probably
Instead of an object
The thing you ask for sounds more like a scarecrow than a sprinkler to my mind
how feasible would it be to have actual windows in the farmhouse? like it draws the exterior behind the house accurately. like huge 3x3 windows that loads a small square of the exterior and whatever is going on out there, like if another player walks behind there, you can see them. or alternatively if you have a door on the wall that leads to a yard or something, it loads that room.
Maybe not a sprinkler. Maybe a Wild Totem you place down.
its been a minute since i been in the modding scene, so i dont know what it would cost ram-wise but i thought i'd inquire
Not even possible because of space compression with vanilla buildings
How exactly does 1 tile in a 30 tile farmhouse interior compare to 1 tile in a 6 tile exterior?
honestly the idea of loading areas you aren't in sounds like a nightmare, especially in multiplayer with shadow realm shenanigans
or are you just thinking 1:1 size but theres only like 1 window?
If u don't actually care about whatever is "actually" behind the house then there's a mod for that
oh just have the player place square for their view.
like when you buy something with robin, it puts you on the farm to place the thing
If you do care about it being a real view then i guess u gotta render target that 
The C# bit seems annoying but doable it's the logistics of how I'd use this mod as player which confuses me
gotta do computer vision algos for like when player is higher than floor 1 :p
in addition to accounting for what 6480 said
Yeah the lack of native Z coordinate means u gotta smoke and mirrors a lot
ram wise would be fine if you like compute once and store the result or something, only doing edits when necessary
i was thinking more like portal. so you can see whats actually in the view. actually lol, better than just a window, a portal would be cool.
i think it would be fun to make something like this, if only it were like 10years ago and i had the time to do it.
@slow basin I'm going to send you the files rather than use the json validator because it might make my ascii go funny (I use ascii headers to make it easier to navigate the file using the minimap, you can get rid of them if you want to). I have written notes prefixed with ABA: the first time I changed anything to explain what I changed and why. Try comparing it against the file that you have and see if you can follow my explanations (if not, feel free to ask me or someone else to clarify). If you want to use either of the files you can just remove the gummigecko_card_ part from the file name.
just finished a crime against humanity
is there a version that has large windows or glass walls ?
I know there is a game state query for PLAYER_HAS_CRAFTING_RECIPE . Is there a way I can query that they have at least made / placed one?
Other than vanilla, these are your options (for the most part, I'm sure there are others out there but not sure how we'd find them) https://stardewmodding.wiki.gg/wiki/List_of_Game_State_Queries_added_by_Mods
I don't know have you tried reading the mod page
was it changing your tab format or switching to file-scoped namespaces? /lh
nope, just implementing an actual data format for the json to be parsed instead of doing it manually, so it's actual changes.
nobody told me this was possible before
thanks for this aba, im understanding better what you meant thanks to your notes but that might also be because i finally went to sleep after over 24hours XD
You didn't sleep for long though! You need some more!
Ill try to sleep more in a bit i just hate leaving things unfinished lol XD
I get the same way but remember you still have a lot more to do and if you're properly rested you will better understand it and make fewer mistakes
I am taking my own advice and going to sleep 😴
have good rest aba!
is there a specific way your supposed to save a tiled map or is it fine to leave it as a tmx file
nvm i forgot to change something
You need it as tmx
yee i forgot to change a section from assets to Maps X3
yippeee everythings working
now to slowly add everything
Is it possible to add separators between config options with the GMCM C# API?
i don't think there's a built-in one, but you can use a complex option and define your own draw code that would draw it
or i guess you could do a section header and make it out of hyphens if you were feeling lazy
yeah I just though about the hyphens xD lol
thank you!
I might change it to the complex option tho
actually the hyphens look very bad
I'll make it a complex option lol
what about underscores?
(does the dialogue font contain underscores?)
i feel like i’ve seen it but now i’m doubting myself
properly implemented, a series of underscores should render as a solid line (fonts that do not do this are deficient for regular typesetting, although it can be forgiven for programming fonts), but the vertical spacing might be weird
Please
.xXx.
Or, my favorite, doing two of those but separated with emotional poems
If you dont seperate with a haiku from now on, I will judge you
I have decided to do 10 entries, take a break
do 10 more, take a break
because if i churn out all 300+ items in one go again im gonna melt
this is 17
syllables but it doesn't
break cleanly, so shame
Dude I actually had quotes from Command and Control in Harry Potter fanfiction
I should read that book again
Song lyrics
Copied an output from cask like you said (CHEESE), still isn't accepting the item.
need idea for the last 4 sprites xd
the four customcask fields are meant to be on the machine data’s top level CustomFields dict
Various tackles and artifacts? thats the only thing I can think of that I store that I don't see
(once you fix it make sure to wack the casks and replace them)
i wish i could just verbally list off what i want my computer to write for me 😭
let me code by reading my list
(the content modders yearn for the foreach)
ty for the help @_@ sorry
(the what)
foreach as in "for each thing in this list, do (thing)"
that does sound nice
Like "for every file name I put in this list, please generate a Load patch for me"
yay, got the star on the book that shows up when it's working. a nice little detail :3 yay~
there are mods?
oh wow
I thought there are none because there is no workshop on steam
workshop isn't an ideal solution so it's not used
Steam Workshop has an extremely specific way of doing mods that isn't supported by all games
a lot of games that either don't exist on steam workshop or don't exist on steam have mods
honestly, as a modder, I always hate using it when I have to, it can be very annoying
Textures are finally done, now I need to actually make the alternative tetextures logic and I'm already confusing myself. I have a lot of questions but overal the pack is pretty simple. Coding is NOT my strong suit lol, if anyone is experienced with AT and wouldn't mind lending a hand please dm. I want to bring the mod to life but quickly realized I have no idea what I'm doing xD
Finding an example pack that is achieving something similar to what my goal is would be ideal
I have 4 spritesheets (style1.png through style4.png)
- Each sheet has 48 sprites arranged in a 12x4 grid, each sprite is 16x32
- I want GMCM to let players choose between "Style 1", "Style 2", "Style 3", or "Style 4" for each chest type seperately: "Chest", "Stone Chest", "Big Chest", "Big Stone Chest"
- Based on that choice, only ONE of the 4 spritesheets gets loaded into Alternative Textures at a time per chest
- Players can use AT interface to assign any of those 48 sprites to the different chest types.
I hope this makes sense, it was tough trying to write out this logic, brained burned
that looks awesome!
Look up chest deco on nexus, it basically has their own versions of these textures
But i dont think at can separate per chest type
It's all or nothing
Someone correct me on that of im wrong
But first off for at, each sprite needs to be split individually, not on a tilesheet iirc. Every at file I've seen never has them on a single tilesheet
I think it can, I have an AT mod that does that
Ooh, interesting. Haven't come across one so I couldn't fully vouch that it existed
the gmcm combo is probably a little more complicated to implement, it might be easiest to start with the 48 sprites for AT per chest and go from there.
here's the AT wiki tutorial:
https://github.com/Floogen/AlternativeTextures/wiki/Creating-a-Content-Pack this is probably the best place to start
here's the docs about CP/AT integration: https://github.com/Floogen/AlternativeTextures/wiki/Content-Patcher-Integration which does mention it's more complicated.
notes on texture names for craftables:
https://github.com/Floogen/AlternativeTextures/wiki/Texture-Names#craftable-item-names (this will be helpful for determining what names to use for different chests)
What kind of items are these supposed to be?
Is it furniture or big craftable
chests I believe
I am so excited for book skill 
Ah yeah i think you should just leave things alone since users do already get a menu to pick stuff with
ty~
tbh I have no clue how the heck I am going to balance the crafting chain. Like what is too much and what is too little. bleh @_@
Is this the right place to seek troubleshooting help for making mods? 👀
Try making just normal AT pack and then use it in game to see how u like it
Yeah what ailes thee?
im trying to make a mod that only changes titlemenu and save/load screen UI scale.
For some reason, no test logs whatsoever show up on SMAPI, but my mod still shows up in ingame GMCM 
using StardewModdingAPI;
using StardewModdingAPI.Events;
using StardewValley;
using System;
using System.Threading;
namespace TitleMenuScaler
{
internal sealed class ModEntry : Mod
{
private ModConfig Config = new();
private float OriginalUIScale;
public override void Entry(IModHelper helper)
{
Monitor.Log($"Entered Entry");
// Load config
Config = helper.ReadConfig<ModConfig>() ?? new ModConfig();
// On entering title menu
helper.Events.GameLoop.GameLaunched += OnGameLaunched;
helper.Events.GameLoop.ReturnedToTitle += OnReturnedToTitle;
// On exiting title menu
helper.Events.GameLoop.SaveCreated += OnSaveCreated;
helper.Events.GameLoop.SaveLoaded += OnSaveLoaded;
// On saving config
// -> MakeMenuInGMCM() -> api.REGISTER() -> save() -> onConfigSave()
}
private void OnGameLaunched(object? sender, GameLaunchedEventArgs e)
{
Monitor.Log($"Game Launched");
OriginalUIScale = Game1.options.desiredUIScale;
MakeMenuInGMCM();
ChangeTitleUIScale();
}
private void OnReturnedToTitle(object? sender, ReturnedToTitleEventArgs e)
{
Monitor.Log($"Returned to Title");
ChangeTitleUIScale();
}
private void OnSaveCreated(object? sender, SaveCreatedEventArgs e)
{
Monitor.Log($"Save Created");
RestoreTitleUIScale();
}
private void OnSaveLoaded(object? sender, SaveLoadedEventArgs e)
{
Monitor.Log($"Save Loaded");
RestoreTitleUIScale();
}
private void OnConfigSaved()
{
Monitor.Log($"Config Saved");
ChangeTitleUIScale();
}
private void MakeMenuInGMCM()
{
Monitor.Log("Entered MakeMenuInGMCM");
var api = Helper.ModRegistry.GetApi<IGenericModConfigMenuApi>("spacechase0.GenericModConfigMenu");
if (api != null)
{
Monitor.Log("GMCM API found. Registering menu.");
api.Register(
ModManifest,
reset: () => Config = new ModConfig(),
save: () => {
Helper.WriteConfig(Config);
OnConfigSaved();
}
);
api.AddNumberOption(
ModManifest,
name: () => "UI Scale",
tooltip: () => "Try testing out with small changes. Value too high or too low can break the UI.",
getValue: () => Config.UIScale,
setValue: (float value) => Config.UIScale = value,
min: 0.1f,
max: 5.0f,
interval: 0.05f,
formatValue: (float value) => $"{value:0.#%}"
);
}
Monitor.Log($"Created Menu in GMCM");
}
private void ChangeTitleUIScale()
{
Monitor.Log("Entered ChangeTitleUIScale");
OriginalUIScale = Game1.options.desiredUIScale;
Game1.options.desiredUIScale = Config.UIScale;
Monitor.Log($"Changed UI scale: {OriginalUIScale} -> {Config.UIScale}");
}
private void RestoreTitleUIScale()
{
Monitor.Log("Entered RestoreTitleUIScale");
Game1.options.desiredUIScale = OriginalUIScale;
Monitor.Log($"Restored UI scale to : {Game1.options.desiredUIScale}");
}
}
}
Need to have a level
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.
Trace logs are always written to that, but does not show on console unless you have the dev smapi
Ohhh so this is where I was supposed to look for logs
thanks a lot!
One question though, I made a test mod that does nothing but print logs on certain events, and in that case I did see the logs from my Monitor.log lines.
Any idea what might have been the difference?
I dunno if this feature fits Bibliocraft or not but I wanted to proto-type it. Mainly due to a friend suggesting it and I liking the idea. Can write letters to giftable NPCs (friendship gained is boosted for video demonstration).
You would've set a log level that shows up in the console, check out the method signature for Monitor.Log, specifically the 2nd optional argument, any level other than trace and debug will show up in the smapi console
Oh yes ur absolutely right! That clears up all the mystery that's been bothering me 👍
(actually 'debug' might also show up in the console I forget which one that is)
main issue atm with mailing letters: scalability. I like the idea my friend suggested of having letters be crafted with an item they like for +65 friendship (so a bonus of +20 vs a normal liked gift). but that means I am going to have to handcraft every letter's recipe. Then everyone is going to want modded NPCs. Especially since I need to add it to the custom crafting station.
That said for release I think I'll just do vanilla NPCs.
Moonslime what if the crafted letter is just 1 item that is universal like, but then you can combine it with a loved gift for the villager
Internally it can just be flavored item and then u get friendship change for giving the item which became flavor plus the friendship from liked item which is the letter
Trying to get the texture.json working for just one set of textures but im getting a weird error
[Alternative Textures] Unable to add alternative texture for item Chest from Stocked and Sorted: More variations specified (48) than given (4)
So I can only make the sheet four sprites wide? (and however tall)
or am I misunderstanding?
Extend down meaning 1 sprite wide N sprites tall
Most people use different pngs
texture_0.png etc
You can look at a existing pack to see how it goes
now i understand why people arent using spritesheets...
are you making a expansion?
Not supporting sprites indexes properly is an AT specific problem fyi
Its an extension of Chest Deco
i couldnt find anything free so i wrote a quick script lol
chests need several frames for the opening animation
Not if you don't animate them :D
A little jiggle of the sprite when interacting with it could be cool
But that is WAY above my paygrade xd
Wouldn't the chest open anim in vanilla not work then
If ur AT pack doesn't include it either
well, we will see if smapi will yell about the dimensions once you get the textures to work
but a good mod to look at is guxelbits chest deco
what i know is that you leave the animation frames jsut empty for them to not play since they overlay on the chest or w/e
That's what the whole mod is based on, they gave me express permission to make this version :)
I just wanted to apporach the configuration a bit differently
But it seems like making seperate versions of the mod and shipping an AIO pack might be WAY easier
What's an AIO pack
not sure if that counts as configuration since vanilla is set on certain dimension for things but anyway, we will see how it turns out
make four versions of the mod that each use different textures, then drect people to install the one they like
all in one
like when bed needs the one that draws on top of the character etc
Hm if you want it to be more configurable
Maybe you should make expanded storage pack instead
anyway i jsut glanced in here when i was getting to bed 
It's a mod that let you add actual new chests
Well Im so close to getting this working 😅
Using new seperated textures, but in game they load a blob :(
fine in the paint bucket menu
but when chosen
This means it's drawing from out of bounds to the right
So the last col of px is just repeating
I think you're fine to do just vanilla and make it CP patchable so modded NPC authors can add their own 
Got it working by copying Chest Deco's apporach
Not sure why it works, but adding 176px of blank width to the canvas fixes it
Exactly what i said lol its cuz vanilla exspects there to be a certain width
these assets are adorable
Had my fair share of wrong texture sizes and weird glitches 
I understand what you are saying, but it doesn't make any sense why it would be that way
Either way I got it working, and I think im just gonna make them as different styles all acceisble in one mod with no config
Do u wish for full story explain
Sure :D
oh boy howdy
I'm trying to get back into the modding saddle and now I'm dealing with trying to sync data between game instances in multiplayer. It's not going fantastic.
Only the fourth style is loading, im assuming they cant have the same names/keywords?
i imagine its an overwrite and it reads the last one, well last
If you look at TileSheets/Craftables in the decompile you can see that there's several places with the chest
This is for the chest opening animation, and for wood chests in particular it's entirely drawn over
AT doesn't exactly follow vanilla but it emulates this logic and looks for frames past the right edge of your png resulting in the brown stripes
ohhhhh so if i wanted to animate them i just use the space to the left for frames
interesting
The modding page on the wiki is a bit sparse on information regarding using modData, which is supposedly synced between players, and I'm not quite up to speed with netcode. Does anyone know of an open source SMAPI mod with unusual multiplayer shenanigans that I could study to get a better handle on things?
what are you putting the mod data on
I'm trying to stick it on Characters, but to be honest I don't even know if that's the right move
like an NPC?
The thing with characters is that they do get synced, but
Only when the farm hand sees the "real" version of them
Yes, exactly. I wanted to store data for some globally accessable tokens that would update occasionally
Which is when the character is in an active location or the same location as the farm hand
Otherwise, from the perspective of the farm hand client, they do see an NPC, but it's just like a fake shadow copy of the NPC that will be replaced with the real one when the host syncs them over
If you want to store globally accessible mod data you can use the Farm modData
the farm is an always active location and always synced
The actual GameLocation is not disappearing
What is the particular data you want to sync
There shouldn't be festivals on the farm anyway
So I'm trying to update an old mod I made which randomizes dancers during the flower dance, but I wanted to keep data of who was paired together for the previous two dances (after occurring) to create tokens referencing the previous partners
Ah i think you want modsavedata then
Was planning on threading that through Content Patcher so people can add dialogue and stuff based on the previous events
i mean you can also store that in modData if you don't care about needing to serialize and deserialize it
Or i suppose u can store it on Farmer modData
I can keep fooling around with stuff and kick this can further down the road until I actually understand how multiplayer works
Farmer is always available i think
That won't work if the farmer wasn't there for the previous dance
Wouldn't they just not have danced with anyone then
Now to answer actual question if you want direct control over multiplayer sync you can use smapi mod message
As I understood it this was for NPC to NPC pairings?
Someone will have danced with someone and if you want every farm hand to know then it can't be stored on the farm hand themselves
I was thinking that the host player would generate pairs (or alternatively, the player with the lowest player ID that is currently active), send it via message to the clients, and then each client generates the event animation and updates their internal mod data
You can do that but remember that you can't "wait" for a mod message
So you'd need to set that up before it was needed
This is indeed a broadcast from host model
But client can send messages too if they need
As long as they don't need a response right that tick
Also what would be the point in using the player with the lowest ID
For a festival doing it in the morning should be ok right
Unless the farm hand joins the day of the festival
So you'd need to watch for the connection too
Yeah then u need to handle peer connect and then invalidate again
I also have example of that 
Pairs generate after user input once the festival has begun (during the walk around segment), but before the animation
That's very late then 
I could always pre-generate pairs the morning of, and then eliminate or replace pairs based on farmer-npc selection
Do you have to do it that late
Are players even able to properly connect after the festival has started?
Do they just get teleported directly into it?
I actually don't know, I've never done multiplayer testing of the festival
If the host does stuff like move actors around
Do the farmhands get updates immediately
The original SDV code has a check for farmers disconnecting during the animation instruction generation
Or are Position not net sync in festival
They're still Characters
If everyone is on the same map though the mod data should sync even if you put them on the NPCs themselves though
Yeah but it is an Event so r they the actual NPC or like funny event actor clones
That's the part I'm unsure about
Maybe u r bump into the 3 tick to sync limit then
Event actors are just Characters with some extra flag sauce as I understand it
From what I remeber, yeah
To make sure you don't mess with the real one
But you should be able to just generate pairs from the host when the festival starts and place them on the NPCs
And if a client asks an NPC to dance, they send a mod message to the host so the host can change the pairings as needed
Do you wish to access these after the festival somehow?
Pardon the dumb question, if I define a new network class, is that auto-magically shared between all clients?
That is the main reason why you might want to store it not on the modData imo
I can always copy the data to something else, be it internally in modData or to an external .json if I have to
It is a lot more annoying to fetch the Character instance and then the data
Vs saving to modsavedata
You don't want to make a new class of anything that needs to be serialized
Hello! Can I ask a few questions about modding as someone who has very very little experience in coding?
Serialized to the save file that is
Permission granted (yes feel free always)
help.Data.ReadSaveData<ModSaveData>(SAVEDATA)
So would the farmhands if it's known this all happens when everyone is in the same place, though
Thank you lol! Do you need a lot of coding experience to create portrait mods? I really want to make my own portraits for a certain mod
You need next to no coding at all for a simple portrait mod
No i mean you persist it via this so that it's easy to access for cp tokens
The more difficult part by far is simply having the portraits made
Nothing really stop you from doing it via modData but then u have to fight shadow npc nonsense so this just see easier
Chu maybe you know the shadow realm better than me, is a shadow copy of an NPC a freshly created NPC always, or is it always generated from what the host knows about them?
(and to be clear this is for remembering who was with who after the festival)
Shadow copies are the existing reference now out of sync
I don't know the shadow realm better than you 
SinZ knows better than both of us I'm sure
Not at all! You can do simple replacements of portraits with Content Patcher (and even throw in some nice mod menu stuff with Generic Mod Config Menu!), or use Portraiture to make portraits that exceed the current size limitations of portraits
Old moddata yes
(network connections are hell and have always confused me. that, and printers.)
So this seems fine then
And if they haven't been seen at all that session it would have data as if it was a new save
Ah thank you guys!
They'd then know as soon as they went to the festival anyway
Festivals might need to check whether they are the true NPCs or event actors
The token already wouldn't work the first day because the broadcast wouldn't have happened yet
Wouldn't this mean that farmhand wouldn't know who haley danced with afterwards
I wonder if im even understanding the desired cp token usecase correctly
An example usecase is: Player 1 dances with Haley one year. Token generated is {Haley, Player 1, 1}. Next year, when Player 1 talks to Haley sometime before dance, she says dialogue. When Player 2 talks to her, she gets different dialogue.
It'd probably work well in combination with some of those "rival hearts" mods, or if you want your spouse to scold you after the dance if you don't dance with them lol
yeah that is roughly what i thought is meant
And why i thought having the data accessible in way that doesn't involve finding the npc instance would make implementing the token easier
I don't know if you want mod message for the actual active festival stuff
Or if you even need it (can host just find out about who farmhand picked?)
(brb, but thank you guys for all your help so far!
)
they can, Farmhand.dancePartner is a NetDancePartner class (which makes sense bc obviously the host has to know)
dont know why i thought client needed to broadcast earlier
Wow a netfield just for dancing amazing
not even just a netfield, an entire NetDancePartner class
Yeah then just you making choice on how to persist the data
I should also bring up that maybe u should just make GSQ for checking, instead of whole cp token (but ofc need to store data regardless)
I would just store it on the farmer their historical dance history rather than on the npc
a GSQ wouldnt work for like, any arbitrary NPC name though
Why wouldn't it
i mean like
if you wanted to do something different for The NPC They Danced With
rather than different if The NPC Was Haley
Ah yeah different usecases indeed
like, i cant do dialogue that says "How was your dance last year with {{Partner}}?" with a GSQ
Do both then 
but, i also think the proposed format of like {Haley, Player, 1, 1} is way too clunky to bne useful anyway
Scope creep alert
ohohoh, don't talk to me about scope creep (help me I'm screwed)
its up :D
can someone explain to me how to add a map in with content patcher? I really dont understand the guide
adding a stair in backwoods which leads to where all my mod houses will be
which guide are you following? also, do you plan on putting NPCs in that new area, or having existing NPCs path to it? because NPCs cannot walk through the backwoods
I plan to have NPCs live there
like
past the backwoods bit
they cannot pathfind through the backwoods, so they wont be able to get to town unless they warp past it, just fyi
I dont plan on the farmer seeing thm there anywat
Idm them warping
im using the stardew wiki
the chest sprites look fantastic! congrats on your release 
i dont understand how to get this into my game
have you unpacked your files and taken a look at Data/Locations?
and the Content Patcher documentation for EditMap, if you havent taken a look there too, for adding in that staircase
Also. Make sure if/when you publish you specifically indicate you are not compatible with SVE
Based on where those stairs are
I turned them all into tmx files
you dont really need to indicate that. but you'll get told about it regardless if you do or dont
not planning on publishing
this is mainly practice
Fair. But. Maybe you can get 10
Less people to comment if you do?
im not talking about your map files, I mean unpacking your files and looking at Data/Locations.json in your unpacked content folder
not gonna publish a mod making my partner into an NPC
that will show you how the vanilla game structures its Location data, to compare with the data on the wiki to see how it works
you will need to add your own data that matches that via Content Patcher
no i still dont understand
!unpack have you followed these steps?
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!
dym this?
yes. that file has all the Location data for every location in the game
Locations are a separate thing from Maps
i see
a Location has a map that it uses, but without any Location data to use it, it just wont be used
so if you were looking at the Location data page on the wiki, thats what all that stuff is
can i analogy it
sure
so map is clothes
and location data is hanger
without location data you cant hang the clothes
and the wiki says how to hang the clothes
if we're following this analogy the Location data is probably moreso a closet, and the Map is one shirt hanging in the closet
but you also have your fishing data, what music plays, its artifact spot data, etc
ohhhh
if you open Locations.json in something like Notepad++ or Visual Studio Code you'll see every vanilla location's data
will it be in a programming language?
so what you'll need to do is use Content Patcher to do an EditData action with Data/Locations as your target, and add your own location data
it'll just be in JSON
i mentioned the backwoods thing
past the staircase yes
this is for adding the new place mainly but there's a section on adding a warp into the new place
oh good there is a tutorial
New quote added by atravita as #6650 (https://discordapp.com/channels/137344473976799233/156109690059751424/1420560861562404954)
at the moment im focusing on the stair though
@wheat sundial You leveled up to Cowpoke. You can now speak in our voice channels and share images in all channels!
LETS GOOOOOOOOO
yea stairs = adding a warp into the new place
is same idea just bigger area
Hi everyone, Im trying to get into modding and making my own Fashion Sense mods, but I have literally no experience with any kind of modding or programming. How would I even get started?
whats fashion sense
you just need to draw 
Fashion Sense is a framework that allows you to easily add clothing options
oh ok
the Fashion Sense github/wiki/documentation/whatever would be the best place to look for a Fashion Sense focused guide, but having an understanding of JSON will be required
as for fashion sense in particular, take a look at the documentation it has info on how to write the json
Fashion Sense mod author docs: https://github.com/Floogen/FashionSense/wiki
I'm mainly learning to do mods and coding for experience
I know this sounds generic as hell but I wanna make a game
just a passion project
thing
I have no idea what JSON is. Do I need any programs for modding Stardew or accessing the game files or anything else I would need?
Anyone here familiar with the dialogue commands? I have a question and not sure which area to ask it in. I'm not using mods but I'd have to imagine you'd all have much more knowledge than me 🙂
JSON is an extension of a file
each means a different thing
png is an extension (which is images)
for Fashion Sense, you'll need an image editor and ideally a better text editor than notepad. We usually recommend Notepad++ or Visual Studio Code here
i guess you can ask whatever and if it's not for here then we redirect you
out here listening to sans last breath (peak)
Ah okay lol thank you guys (this is going to be like teaching a toddler to do advanced algebra im sorry in advance 😭)
Unfortunately a lot of what you'll be learning through making Content Patcher mods will be specific to SDV, but writting the proper syntax in your json is excellent for leaning the general logic of programming!
Wondering if they could be used to prompt things like the dialogue for having caught a specific fish or anything like that. So that it would be added to the collections
Oh ok thats still good
im not sure i understand what you want
The caught Fish key?
if you'd like (and are on a computer and not mobile, it doesnt look so good on mobile...) i do have a JSON tutorial that people say is nice
https://stardew.button.gay/tutorials/json
An ability to increment fish
I need C# for gamemaking right?
do you want i dunno willy to say wow you caught a big fish
Okay, so you know how if you name animals a string of item IDs you can get x number of items, etc?
Atra to finally eat dinner?
there is no one language for making games
oh you want to change player name to cheat ok
oh ok but what would be recommended?
i don't think there's anything for that 
I know python is one
I want to see if any of those newer commands like $action <action> or something like that could prompt the pop-up for having caught a fish so that the fish registers in the collections tab
i think Malrats is talking about maybe the conversation topic that is autogenerated for each fish caught? so sometimes someone comments on something you caught
oh nvm me then
I think they mean like "ooh wow new fish cool"
you cant do that with dialogue commands
is just matter of there not being a vanilla case where willy said you caught a lingcod and voila you actually did yknow
there is no one recommended language. there are many different languages and game engines for each
whereas vanilla had case where character says they give you a thing
oh ok
Oh, okay. I saw this "$action <action> Run a trigger action string, like $action AddMoney 500 to add Gold 500g to the current player. " And thought maybe the action could be catching fish and stuff like that
There is not
You could write a mod to do it
Python is good for beginners. Java is also commonly used, but it sure is one of the programming languages of all time. C# is a good place to start, in that it eliminates some of the more esoteric and confusing parts of the C language! Starting to make a game engine from scratch is tough, though. You're best off using an existing engine, something like Game Maker or RPG maker, as the base for a new game. It eliminates a lot of the hard work.
I'm just playing the game without mods, didn't wanna do that but am having some issues with fish registering and wanted to see if that could work, just in case
oh I know basic python (ifelse, variables, print, loops)
so I should go for Java C# and Python
yh i think for game making it's more useful to think about what game engine you might use, like godot or unreal or whatever
you should go with whatever language would work for you to make the game you want in the game engine that comes to you easiest
but also #programmers-off-topic
for modding Stardew though, you'd be using C#, if that sways anything
what do i do with location data?
i would follow the guide chu linked you to earlier
sdv is C# because mr ape picked XNA as the game engine (and it later changed to monogame)
i dunno if i recommend monogame to a newbie
I see dialogue commands for adding mail or learning recipes and that kinda stuff so kinda hoped there could be fishing
the C# is transferable though, since its used in Unity and can be used in Godot
Transferrable
I'm understanding 75% of this
Every time I've seen someone use unity and then try to write non unity c# it's always so weird
So weird
Knowing any programming language is good, though! The logic and structure will have a degree of similarity, no matter what you choose
ok but this
you're wanting to mark a fish as caught after seeing a specific dialogue? do i understand that correctly?
this was answered
uhhh let me look
"i would follow the guide chu linked you to earlier"
oh mb
the guide chu linked you to is a guide for adding a new location, which uses location data
this?
chu wasnt talking to you with that link
right before you leveled
oh
you may have missed as a result
this one
oh i 100% missed that
mb
got distracted with embed perms
ok I'll take a look
thanks guys
fish would be a great start
malrats i don't think the thing you want can be done in vanilla
it cannot
it is true that there are actions for adding recipes, that's because the game has uses for em
is not arbitrary code
Yeah that's understandable, that's why I figured I'd ask the experts 🙂 I've only used the commands so far for adding items like crops
yeah, you could add the fish as an item, but to register it as having been caught by you would be different
I'm trying to modify UI scale of title menu + save/load screen only.
After some digging, I found that desiredUIScale in Game1.options is relevant only while gameMode == 3 (i.e. playing). In other words, changing it does nothing while in title menu.
So I tried modifying singlePlayerDesiredUIScale and baseUIScale instead, but turns out the game constantly reverts them back to the original value (1), at least within the title menu.
My next train of thought is to find how the game is fixing those scale values, and maybe also how it is drawing the UI for title menu.
Any hint on finding where those game logic might be at? 👀
That's why I wondered if there was a way for a command to prompt the "caught" popup for a fish
But if there isn't then hey, what can I do
if you use ILSpy and analyze the field or whatever, it can tell you where it is being read or assigned
if I make a farm animal building with no animal door, that'll just mean the door is always shut, right? it won't cause any crashes?
looks at time
01:18
looks at schedule
Need to be awake at 8am
shit
well gn guys
thanks for the help
ILSpy..something new I'll be learning today I guess
what were you using to look at the decompile before?
IL Spy is excellent, best friend of anyone messing around with SMAPI C# mods
Knowing this game, I wouldn't expect no crashes lol
provided function for VS
i think selph's mod will teleport them outside 
just right clicking the parameter u know
thats terrifying
me
ILSpy will make things 1000x easier for you
xD im not so keen with vs and c#
theres no need to spam random embedded images
been working mostly on vs code
Fwiw ShrimpManiac, the way UI and game zoom work is Fun
!decompile
If you want to make SMAPI mods with C#, one important resource is decompiling the game to read the game code. Here's how to do it: https://stardewvalleywiki.com/Modding:Modder_Guide/Get_Started#How_do_I_decompile_the_game_code.3F
i use ilspycmd personally
I sense a great disturbance with the word "Fun"
dnSpy is also pretty dang good, though perhaps overkill for stardew modding
@brittle pasture is this true? and if so can I stop this behavior for a specific building?
oh but ur in C# right
Also you sure you can avoid having an animal door
Doesn't it default to 0,0?
Inaccessible maybe bit there
i dunno why i thought you were gonna put a 0,0 sized animal door
(also, off topic, it's funny being back here and recognizing some of the usernames! I'm glad to see people stick around)
well I'm looking to create an animal building with no animal door, and trying to figure out the least breakable way to do that
I figured the easy way is to just use the data and omit the animal door value
I don't think so actually; my mod unstucks animals after the game teleports them out
oh excellent!
then a 0x0 door should be fine, since its closed by default and the player won't be able to open it
having no door was a ok
having no interior map explodes
u will ofc have interior map yes?
I was also considering a non door animal building, good to know
yeah that's part of the point
I wanted to make an end-game hybrid coop/barn that has an interior blue grass area, then patch animal behaviors so that they can eat grass indoors if it's marked with a map property
the duck paddy dimension
I want to try making an underground pond for aquatic animals eventually but effort
side not but why tf are some of the local captured in FarmAnimal.behaviors? I don't see a almabda anywhere in there so it seems entirely unnecessary
oh wait I think it's used for sprite behaviors
almost like those egg cartons that are technically from 'free range' chickens
lol
say is there any GSQ to check what floor of mines you be at
in 1.6.16 there is
but im pretty sure you can also just check the location name manually
i think
its just like Underground27 innit
UndergroundMine*
i was close enough
oh nice i dont need to add it then
assuming you're using CP, i'm not sure if any operations can take the number at the end?
well it is just a gsq usecase
wdym any operations
query, for example
so until 1.6.16 u would do PLAYER_LOCATION_NAME Current UndergroundMine10, PLAYER_LOCATION_NAME Current UndergroundMine11,PLAYER_LOCATION_NAME Current UndergroundMine12 and such to check floor is 10-12
it does suck a little 
well you'd do ANY
a little. do also doublecheck that there's not an underscore between the name and number if you're going with this, not at my pc currently
ah yea true
well its ok im just evaluating if i can slacc on adding a gsq and LOCATION_MINE_LEVEL is basically exactly what i was going to do
what did you needi t for anyway
monster variety
so ppl could be like, this variety appears on floor 50 to 70 of skull cave
which would be UndergroundMine170 to UndergroundMine190 right
oh hrm
well i dont have anyone explicitly wanting this rn
if they do and 1.6.16 not out then ill add it
as far as i can tell, a forced layout only happens thru the debug command
Working on a fly-by hello mod. Fires when the player clicks an NPC, they say a short "greeting" type line, and the player gets half the friendship points they'd normally get from talking to an NPC. You can still talk to the NPC afterwards like normal, but this would give you either bonus points, or keep some NPCs topped up without having to stop for full dialogue. Example pics (it was raining, is the context). Just gotta work on the dialogue!
How does it work for controller
Going to be testing that tomorrow, but it should work.
my mod didnt work perfectly the first time i loaded it up to test
now i have to figure out what went wrong
all i want is for everything to always work the first time is that too much to ask (yes)
all the letters made @_@
thats cool!
i was considering if we can customize the icons mail gets the other day
tbh would be a nice feature just for debug cuz i was having a hard time finding my own mails in the pile
If it doesn’t work the first time you try you should give up and stop trying /s /jk
That’s my philosophy
if it works perfectly the first time you should be suspicious
Agreed
Ok hehe!
I already figured out like half of the not-working bits. Somehow missed an entire very important field in my item extensions part
"Why arent my rocks spawning in the mines" the entire MineSpawns field i didnt type in
I've just started trying out ILSpy and I'm having some problem 
In the Visual Studio decompile window, I see 3 instances of singlePlayerDesiredUIScale from ctrl+f search.
In ILSpy, however, I only see 1. When I manually go into Options class in ILspy, I do see the missing 2. They're just not present in the search result.
What could I be doing wrong? 👀
the search in ilspy is a little wonky, and if you look at the place where it says "types and..." you can see it's only searching certain flavors of stuff in the code
if you want to search the whole text iirc that's not at all the default
ilspy sees 1 declaration, vs sees 3 copies of the string
in this case i feel like my subjective opinion is that 1 is a true-er number than 3
but it depends on what you need things for
in other news: mmm, delicious
(i figured out how to move entries shortly after this)
ILspy tells you that is a field that exists
Right click, select "analyze"

that is the analyze i mentioned earlier 
you can ofc use both ILSpy and the saved decompile (you can save the entire decompile as one .sln with ilspy) in conjunction if you need to search with strings
there's still raw olive wine allowed but i feel like if you chuck a raw olive in a keg you get what you wanted when you get raw olive wine
it sounds awful tbh
if you need to search actual strings like the type string, you can search by Constant in ILSpy instead of Types and Members
but not like, a string like "return thinghere"
i never remember what the right settings on the search are but i just fiddle with them every time
tbh i mostly use the sln and then use some kind of "find in files" search
tho ilspy crashed the last time i tried to save the whole decompile, i get mine from pathos (requires mod author role + lvl 50 here iirc)
Classical, what if realistic asparagus
I thought this is gonna be an easy mod to make....and I should have listened to that guy in the comment sections for some mod that mutes title menu bgm.
there was a good reason for surprisingly small number of mods that deal with title menu
What if instead, unrealistic friendship: NPCs who just stand there all day waiting to be gifted
they can have dialogue, but no events
maybe they don't even need to walk home at night
then i wouldn't have to make walk sprites
i feel like you've just described depression
however i sympathize, walk sprites are the worstttt
I don't know, Classical, I'm just very intent on having asparagus for dinner
I pretty much live on "Types and Members" at all times, and if searching for hardcoded strings then I'll switch to constant, I don't touch the others
I also don't keep a sln decompile locally (though I currently do purely as I was attempting to automate the process), as I find ILSpy's search + analysis functionality to be more powerful than visual studio
to the point I have used ILSpy on my own work codebase in the past as it could understand the compiled binary better than I could with the source due to some unholy use of partial
I've also decompiled my own code to check what the compiler was doing tbh
3 year asparagus is the opposite of having asparagus for dinner 😂
...shit 
where do these colors appear in game?
Text right underneath the item name that says like "Fruit" or "Vegetable" or whatever
oh! ty
had no idea those colors were on the wiki, i was going ingame to colorpick them lol
Does anyone know where is the function that draws the red/green tiles indicating if something can be placed? Specifically for Furniture? I might overwrite it to show which specific tiles are invalid for custom Furniture.
found: Object.drawPlacementBounds
is there someone who can help me figure out to make nested pages through Generic Mod Config Menu's API? i feel like my head is going to explode trying to understand C#. i already have a config / mod set up normally with Content Patcher; just trying to clean it up by adding sub-pages (and apparently it's only possible with C#).
doing it in C# means discarding the content patcher config and doing it all in C#
in your own C# component, which would be a seaprate mod as far as SMAPI is concerned
and then you would need to expose those config options as Content Patcher tokens for your CP component to access
yikes!
are separate pages that important to you
tbh no i'm just going to leave it as is i've already had to rewrite so much code 😭
most mod users probably wont care at all as they are likely only going to configure the mod like... once, if at all
you're right haha thanks for the quick response!
Hi, is anyone here use this mod https://www.nexusmods.com/stardewvalley/mods/14087 ?
You'll probably have more answers in https://discord.com/channels/137344473976799233/933546639669493791
Thats kinda adorable
Kk, ty ty
So basically I want to edit the interior size of this mod, already try to contact the owner but no luck. So maybe someone here could help me.
Already try to edit the tmx file with tiled but when I try the mod I couldn't enter the cart anymore.
!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.
Send a link to your log here *with the error after you try to enter the cart, and someone should help eventually
man
wait maybe ill just text it
*test
YES
i found the info i needed lego
ok i cant have the museum split up between 2 places got it boo
Not two separate maps, no.
You can make it a single map that looks like 2 maybe. And thats a big maybe bc i dont know much about the museum framework youre using
You can, but if you want to give players the opportunity to rearrange the museum they might have a long way to scroll
But if it's not rearrangeable or it's not likely that people are going to want to do it much it's still feasible. I found that using the mouse against the edge of the screen and the movement keys made the screen move faster so it wasn't terrible going across a 100 tile map.
And you can have multiple donation menu areas so they don't have to scroll forever just to donate in the first place.
It is pretty awesome and so much more flexible than the vanilla museum.
Log Info: SMAPI v4.1.10.3 - 1735840167 with SDV 1.6.15 build 24354 on Android Unix 29.0.0.0, with 12 C# mods and 1 content packs.
i decided on 3 museums in one building in 2 seperate rooms split up into 4
because theres gonna be 3 different collections
(eventually not right away)
im making room for my future mods
You need to remove those filepaths from the tilesheet image sources because the game can't find the tilesheets. Edit the tmx with a text editor to remove the projects/ folder from the image source lines.
wait can i make generic npc dialogue using tiledata for like a repeatable basic line if you try to interact with my tile npcs?

gotta check that
Ahhh I see, kk I'll try
Yes you can, Action Message <key>. Use Message instead of Dialogue so you can give it a key in Strings/StringsFromMaps and can then use i18n instead of having it in English straight in the map file which can't be translated easily.
oo ok thk you aba
@slow basin You leveled up to Farmer. You're now a prettier shade of blue. Thanks for sticking around!
finally @vernal crest thanks for the help
where do i find a list of the keys so i know what one to give it or is this like a custom thing i need to name it? :0
You would choose your own for that. In the map file it would be whatever your mod id is (written out in full because you can't put Content Patcher tokens in a map file) and then an underscore and a descriptive name for the key like gummigecko.cards_TaliaSpeak or something. And then in your EditData patch to add the actual dialogue you'd Target "Strings/StringsFromMaps" and the entry would be "{{ModId}}_TaliaSpeak": "{{i18n: dialogue.talia.hello}}"
I'm assuming this isn't dialogue for your museum owner though, because that is set differently if so
no i have 2 little shop keeper guys who dont talk and are just there as flavor but i dont want them to just be like brooms in a corner
i think im gonna set up a mail that arrives to the mailbox that explains the shops need for the collecting help tbh
Mod that shows inventory item categories, who loves the item, if it can be added to a bundle, and if it can be planted now
wow
finally figured out a good terrain set for painting forest canopy
Nice
Whats the green and red for?
those are the terrains in the set
https://doc.mapeditor.org/en/stable/manual/terrain/ for reference
you set up a terrain set and then use it to paint on the map. instead of just using a specific tile from the tileset it automatically picks from the set to make the "colors" line up
so it automates a lot of the tedium of changing tiles and painting in the corners and finding the transition tiles, etc.
Damn I need to learn that
i had seen people (like DH) talking about it before but never tried to set it up until yesterday/today
took me a bit of trial and error
similar results!
terrain sets and the terrain brush are built into tiled. this looks like maybe a plugin? but i expect that FoliageRules.tmx contains the terrain sets and the keypress makes it paint on the places you put the specific tile
Neat info, thanks
neat!
Wait, your cards are going to be a museum collectible? 
Dang thats cool
been workign on organizing my wip pile and. man
i wonder which one's the big project here
The same feature that allows for multiple donation areas works for rearranging, to eliminate the scrolling
I have a question on my mod and the person's log file has a galaxy.api error. Anyone know what this is? Just generally.
probably that they’re running the game through GOG? you’d have to send the log for more information
Ah ok, nothing related to my mod then.
Fellow obsidian user?
Oh are they on linux? if so it's possibly the multiplayer issue
Here's the log in question: https://smapi.io/log/d60ab8b9cb3b4f429816d616d27e9e48
Log Info: SMAPI 4.3.2 with SDV 1.6.15 build 24356 on Unix 6.11.11.19, with 25 C# mods and 27 content packs.
It's great, by far one of my fave programs
Yep multiplayer issue
if your doesn't touch anything multiplayer related, it isn't your fault
Alrighty! Thanks!! I don't touch anything with multiplayer, and I don't test with it either.
Hi, any Tiled experts around? I'm practicing with a PIF map (vanilla greenhouse as base, exported the other tilesets from other vanilla maps) and everything works apart from one specific tile on summer_outdoorsTileSheet on my winter map. Everything looks normal when I open the map in Tiled
unrelated but you should stop using PyTK. it's no longer actively harmful to have installed but it also doesn't do anything for you
Oh yes, I'll advice them on that one.
oh, i missed that it wasn't your log. sorry, my mistake
No problem! It's helpful to know what to tell people, so many odd issues come my way, haha!
Ok can someone help please? Im stumped. Im trying to add a flag when the player has donated 15 minerals ONLY to the museum. Following the wiki I got here. The flag is not triggering:
"Action": "EditData",
"Target": "Data/TriggerActions",
"Entries": {
"{{ModId}}_RedshrineFlag": {
"Id": "{{ModId}}_RedshrineFlag",
"Trigger": "DayEnding",
"Condition": "MUSEUM_DONATIONS 15 MINERALS",
"Action": "AddMail Current {{ModId}}_RedshrineFlag"
},
},
},```
When you open the map in Tiled, it generally defaults ot the spring tilesheet. You can start by associating the tilesheet with the summer version instead and see if you have the same problem. Also, get a Smapi log and see if you have any mods that edit the outdoors tilesheet.
have you changed it since testing? try testing on a new save and temporarily changing it to have MarkActionApplied false just for testing
Smapi log is blank, I've already checked that one and the problem doesn't appear with the spring tilesheet
sometimes it’ll trigger silently and you won’t know and then it won’t ever trigger again
Ive logged out twice and im checking my save file directly
hmm have you tried debugging each constituent part? like checking that the GSQ returns true, checking that that action does what you want
Hmm, you can change the settings in Lookup Anything to give you more information about map properties and then look up the exact tile being used. I would dig into it more but I have to get some work done. ^_^;
i don’t think AddMail requires a time of day, does it? let me check what the default is for sending mail
That tile looks like the front bottom corner of the bus to me
okay yeah it doesn’t require type and defaults to tomorrow
and its weird because my other 2 shrines are flagging:
This is very strange... And it's not replaced, it blinks between the bus and the forest tile
Hmm, try turning off the different layers in Tiled?
yeah i would make sure that the condition is definitely being met first
let me find the syntax of that debug command
Actually, I think if I were you I would try it on a minimally-modded game, with only the most basic mods you need for testing. If it still happens, you'll know it's you, if not, you'll know it's some other mod doing it.
That's actually what I did from the start. And I've checked all my layers. No bus. I haven't even touched that tile while making the maps
hey! a little tiny bit ago i asked about mod ettiquette - may i ask if the listings of the two mods i just posted look alright? i expect very very few downloads and that's okay and i'm not asking about that, but rather i wanna make sure it looks Okay and respectful to the original mods - even having checked over permissions and licenses i'm so nervous of stepping on toes haha
https://www.nexusmods.com/stardewvalley/mods/37869
https://www.nexusmods.com/stardewvalley/mods/37867
Hmm. I wish I could spend more time to dig into this with you. You sound like you know what you're doing, though, so I don't know if I can suggest anything else anyway. I'll think on it and see if anything comes to mind.
Thank you @urban patrol ..... apparently the word Minerals is case sensitive..........
ah glad you figured it out!
Case Sensitivity is a nightmare!
i never would have guessed that lol
was just about to say, yeah, any types in museum_donations are a case-sensitive type == argument loop
It might be worth adding that little tidbit to the wiki
Thanks for trying. I've tried to replace the tileset, too and it just happens again... Maybe I need to bite the bullet and just load it again from the png. Stupid types and properties -.-
yeah, not mentioned there it looks like
I can barely read today though, I'll leave it to someone else 
i find case sensitivity so frustrating in stardew because in so many places it is not an issue, until you find a thing where it matters and oops!
Im glad It was a weird nuance and I didnt get the code wrong.
i would not be as annoyed by it if it were more consistent, even if everything were case-sensitive
if only C# had good shorthand for ordinal-ignore-case 
I WIN
i added a note to the wiki
_cryomancer.fishfactory_fishdoor1 has the CanBuildHere map property set, but its AlwaysActive option is disabled, so building is disabled here.
never heard of that map property, hmm
and my walls are still being a pain, that seems like a problem for later tho
think it's break time tbh
Not a map property, a location data field
Assuming you're talking about AlwaysActive
yeah. it's for a PIF room
"CreateOnLoad": {
"AlwaysActive": true
},
maybe it needs one of these?
well i'm gonna go out awhile for now, thanks
so, I wanna make a mod with custom character outfits, but I'm not sure I'm good enough to draw them yet, how can I get better at drawing them? :3
draw, get feedback, improve
post in #making-mods-art and be like "hey guys i wanna improve my art can you help me?" or something similar, all cool people in there
its gonna be a called a collection in the mail i wanna send in the mod but yee
If anyone has some tips of locating specific map sprites I'm all ears. In vanilla, the mountain area has a darker ground pallete than the rest of the valley. I'm basically trying to find which ground textures are called for the mountain area. Thanks in advance, hoping someone can point me in the right direction.
open mountain map, go to layer the asset is on, right click and itll give you the coords and sheet selected from all the tilesheets in the map(y,know, on the right side where they are)
It's these on Spring_Outdoors.
you can see the darker ground bits compared to the top left ones
(I was already in Tiled anyway so I just did the thing :V)
deep in the tile mines
I'm slowly working this all out in my head, as I didn't even know the Tiled map editor exsisted
Alright I've got the map editor installed, unpacking all the files now, thanks for pointing me in the right direction :)
tiled is so fun!
is there a way to make animated sprites with only CP?
yes, but are you talking about NPCs or map tiles or what
item sprites
look into spacecore
spacechase0.SpaceCore/TextureOverrides
I'm more of an example guy, I have so many questions T_T
Why does this sprite have transparency from the bottom up?
not entirely sure how to replicate it xd
or if i even need to
probs foggy or for water
dont remember of the top of my head what its used for tho. if you wanna imitate it then its done with a soft brush eraser on low opacity
i just wasnt sure how precise to make it
{
"LogName": "Stardrop Animated",
"Action": "EditData",
"Target": "spacechase0.SpaceCore/TextureOverrides",
"When": { "Enable Stardrop Crop": true },
"Entries": {
"Expanded.VanillaCrops/StardropAnimated": {
"TargetTexture": "Expanded.VanillaCrops/Stardrop_Seeds",
"TargetRect": {
"X": 0,
"Y": 0,
"Width": 16,
"Height": 16
},
"SourceTexture": "{{InternalAssetKey: assets/Stardrop_Seeds_Animated.png}}:0..5@20"
}
}
}
well, I'm trying this but it is obviously not working T_T
are you sure that your target texture is correct?
well, it is because it renders nothing lol
okay so then it's an issue with the source texture?
i would assume it needs to be loaded yeah, but i'm also not familiar with how spacecore does its thing listen to iro instead
well you're using an internal asset key so you don't need to load it
(which isn't a spacecore thing btw)
your "when" block seems suspect though
can we see your entire json please?
!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.
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.
I changed x and y just to see if they are the culprit
don't use the command yourself, read what the governor message says and follow the instructions
and please don't randomly change values between fixes, it makes it harder to figure out what the issue is
sorry I'll paste it
but yeah, your "when" block is wrong
anything in this that would make it unable to have wall decor or farm buildings?
here's tiled
I'm not sure config keys can have spaces? I could 100% be wrong though
and your config is false by default, are you setting it to true when testing?
yes
and config can have spaces
"When": {"Enable Extended Crops Pack": true},
Cornocupia uses them
ah, I see
I think the issue is path
where is Expanded.VanillaCrops/Stardrop_Seeds from?
it's not something SVE uses and stardrop seeds aren't a vanilla crop anyway
it is from my mod
the crop is fine the problem is just the animated texture for the seeds
well it's hard to debug things for you without context
oh
I see the godamn issue lol
I mixed the seeds and the crops texture
it works
beautifully as intended
thank you @gentle rose !
btw you have a few issues with your crop (for starters, it takes nowhere close to a year like it says, it takes two seasons and one day). There's also nothing right now to limit it to one per save (I'm not sure if you just didn't get to that yet though) and the context tags seem to be unrelated to the actual crop?
neat
right, as long as you're aware haha
yeah, it is yielding a cave carrot and other stuff
because it is a wall furniture, it must be placed on a wall
probably got the wrong Category for your item, my bet
nah that's a vanilla item
is wall ID a tile property?
i'm sure this isn't actually the issue, but are you sure that it says WallId and not accidentally mistaking Ls for capital i ?
ok good hmm
must be missing something somewhere, or one of these other map properties is disabling it
i made another room recently that had a similar issue
did the walls the same on all three tiers but only tier 3 would decorate and i have no clue
hmm maybe building layer messes it up?
that's about the only thing still making sense, i'll try that
Your WallID tiledata isn't overlapping a floorID tile, right?
nah
And you've set the IDs in the overall map properties?
indeed
i think it legit might be layer dependant
like the wall tile property is on the back objects
doublecheck that you don't accidentally have something on an AlwaysFront layer there?
but i also had the same wall on building layer
i'm changing it over now so we'll see in a few
also is your original wallpaper texture from a sheet named something with walls_and_floors somewhere in the name?
Any tile not from there would also be broken if it wasn't, but just in case
the wall tile is from the bathhouse sheet
Okay, so
it specifically needs to be from that sheet?
for my bathroom renovation mod, I had to load the tiles separately into a z_walls_and_floors tilesheet in Tiled so it would recognize them as decoratable tiles.
weird
It looks for "walls_and_floors" in the name somewhere to make sure that it is in fact a wallpaper that can be replaced.
that's for wallpapers tho right?
i'm trying to put paintings up
does it need to be both?
i'm trying to make a wall accept wall furniture, yeah