#making-mods-general
1 messages ยท Page 321 of 1
(which is why this would work better theoretically)
which is what the dynamic token would be for with the conversation topic, when the CT is active the social tab viewing is set to always hidden, when the CT disappears they reappear
you can also add in a mail flag to the event to make it so that the dialogue changes too
(to reflect them not remembering and acting different)
i mean (regarding multiplayer) i'd want all the events in question (and the npc's before/after status) to be synced between players
hey hey hey csharpers its time to my saga to restart
i'm worried that any situation in which having the npc technically still exist afterwards is actually beneficial would be a situation where everything is desynced between players anyways
what about the situations where players do things at different times, or play at different times? what if the host starts an event and then the next day, a new farmhand joins
what if the farmhand's tokens update sooner?
wdym?
your When condition that makes an NPC unexist doesnt apply immediately. it applies when Content Patcher updates the token context
ugh i see what you mean, i take it there's no update rate i can choose that would guarantee the host and farmhands stay in sync?
other than "every frame" ๐
you cant do every frame anyway
In vanilla, Leo events are handled by the memory system
maybe i should implement this part of the mod in c# instead of content patcher 
the soonest you can do is OnTimeChange, but even then, you cant account for what someones mod list might do regarding when things change
So people can view a past event on the island by talking to Leo
it seems like a whole lot of work to ensure things are perfectly synced with no chance for bugs when you can just... hide them.
and reset their friendship.
If you dehardcode that then u could just have progress be desynced perhaps
i mean i want to make sure things are perfectly in sync regardless of if i'm hiding the npc or deleting them
right, so why make it more difficult than it needs to be?
i probably want the post-event npc to be a different npc though, instead of resetting friendship
they look different and everything 
may i ask why?
the magic doesnt matter at all when the player doesnt see what happens behind the scenes to know the difference anyway, though.
im just wondering what sort of stuff mods might attach to individual npcs to know if i'd want to clear all of those (by changing the id after the event) or not (by just resetting friendship)
mod data, for one
would i do that in a seperate method from the - actually i know the answer nvm
like, the modData Dictionary assigned to the NPC
yea i knowwww lol one of my mods does that
im wondering ig there are any Popular mods that use npc mod data cause i can't really think of any
i probably have to steal this from the old code https://github.com/jahangmar/StardewValleyMods/blob/087c01a4df2e9eac8387726f173ea8e5852a69c2/InteractionTweaks_Project/InteractionTweaks/src/CarpenterMenuFeature.cs#L297 is my uneducated guess
to make new money required amount
i hate involving new variables this shit makes me want to explode
blueprint makes me angry
oh, also, you'd fuck over Perfection
hmmm i should definitely look into the leo stuff, but id rather not have progress be desynced between players
all im hearing is that i should delete the npc after the event 
deleting the NPC is what would fuck it over
the Friendship object in the Farmer friendship dictionary wouldnt go away, and it would never be completable
im not actually sure what the game does when it does its stale NPC detecting stuff
but iirc it only runs when a save is loaded
Hopefully a very simple question; if I do not specify if an item is loved, liked, etc by a villager, does it automatically default to hated or neutral?
They default to universal taste
its determined by the item itself, ie cooked food is generally liked
Ah, so if I want everyone to hate the Surstromming I just made, then I gotta put them all in the hated category? Fun times.
You need to put the item in universal hate
What file has universal hates in it?
gotta target Data/NPCGiftTastes
ah, eyah I just found that.
Should be a simple thing to do.... for someone not dumb like me lol
me anytime i do a mod related thing
and speaking of dumb things... is there any example of using drawlayers to layer a new texture over a building? Im trying to do that but having trouble
The vanilla mill
this is what I got so far, Ive tried messing with it a lot but currently its saying it cant find the texture Im trying to load
{
"Format": "2.6.0",
"Changes": [
{
"LogName": "Farmhouse base load",
"Action": "Load",
"Target": "Buildings/houses",
"FromFile": "assets/Textures/Farmhouse/houses.png"
},
{
"LogName": "Farmhouse top load",
"Action": "EditData",
"Target": "Data/Buildings",
"TargetField": [
"Farmhouse",
"DrawLayers"
],
"Entries": {
"{{ModId}}_HouseTop": {
"Id": "{{ModId}}_HouseTop",
"Texture": "assets/Textures/Farmhouse/test",
"SourceRect": {
"X": 0,
"Y": 0,
"Width": 272,
"Height": 288
},
"DrawInBackground": "False",
"DrawPosition": "0, 0"
}
}
}
]
}```
you loaded into Buildings/houses but is trying to use assets/Textures/Farmhouse/test as the Texture field
they should be the same (side note you should use a more unique name with your ModId in it)
ah so do I need to have the second texture as a part of the same file?
also which name are you refering to? sorry this is my first time making a mod
doesnt really matter
basically if you want to use a Texture you need to load it into a name somewhere, and pass that name into the Texture field of the data model
OH I think I understand
it worked! thank you so much, I think I get how it works better now
Well, I gave it an honest shot. Everything loads, but NPCs seem to like the modded item instead of universally hating it. https://smapi.io/json/none/8573d20de7394f2fbf4c2f215905cdf9 What did I do wrong?
that's not how you edit it
you'd need to do text operations
the CP page for text operations should have examples for gift tastes
Appreciate it. I really need to just sit down and read all these pages at some point.
Anybody have a clue why concerned ape used InvariantCulture in handle action command? Admittedly it seems to have negligable impact when you don't also improve the structure of it from O(n^2) to O(n) (without the improvement one mail I'm testing with goes from 6.6 seconds to 6.1 seconds) but when the structure has been improved it's massive (from 1.5 seconds to 0.03 seconds). InvariantCulture also appears to only be used in handleaction / handleitem commands, but we're only looking for %action and %% here; are percent signs something that he'd have to worry about changing between cultures?
nobody ever has a clue
mysterious, and i dont really see a point to it
he does things in his mysterious way
but hey! this means that I can take something which took 91567 milliseconds to apply gender switch blocks and 6689 to apply handle action commands and make it instead take 26 milliseconds to apply gender switch blocks and 35 to apply handle action commands
so overall, a 1600x speedup
I mean this is only a 1.6 million character long name idk why it would take this long :)
I'm not experienced in c# (I've done python and java coding, though tbf with how much I've read both stardew and celeste code I am quite familiar with how it looks) what are you suggesting I do with this? I guess the idea would be to declare that "hey, you gave me this string, and I promise I'm not gonna edit it?" wouldn't strings already be read only?
(I did end up going with skip prefix because I was already looking at that I was only missing the ref __result)
in some scenarios ReadOnlySpan<char> is faster than string
idk if you'd be able to use it for HandleActionCommand though (since it is expecting string return), might need to patch LetterViewerMenu constructor
The string I return is both significantly smaller and unimportant, and I construct that using a stringbuilder [since admittedly, the resulting string is still like 0.1% the size and O(n^2) there too would be disappointing]
Is there an up to date list of sound effects?
The string return is more of a "I want this to have completely identical behavior to vanilla" - it's more accurate to consider it void
well that's exactly it isnt it 
I never edit the string given to me so I'm not opposed to the concept of treating it as a readonlyspan, I'm just not sure how I would do so given that I'm handed a string and if that would be performant
If some mail will be sent upon seeing a specific event, will it still trigger even if the player skips the event?
i guess it might still be more fast though, if you did 1 string to ReadOnlySpan<char>, did all the string parsing stuff, and then turn result back to string
I'm given string mail
I create stringbuilder result
I scan through the mail, either plopping text into the stringbuilder or executing the code
I tell the stringbuilder to create a string, and return that
Does readonlyspan<char> support substrings + indexof, or would I have to implement that myself?
if the mail condition is "has seen event" then yes
if it depends on setting some mail flag in the event body in response to dialogue questions or other commands then I don't think so, but you can put those in setSkipActions aka "if event skipped then do this" block
im lazy and almost never use this, but since you are aim for perf you might as well go all in
it's complaining because it can't cast string to char[]
string.AsSpan();
ah ty
to go the other way i guess you'd keep the not actions slices and stringbuilder at the end?
๐ another day, another block of machine rules i have to copy and paste.... sigh
local toke-
i kinda worry about my chaotic pricing of items... like... im not an expert on finance...
๐ญ especially not within the realm of this game. i dunno whats considered "balanced" or not
what if i just turned it all into tokens and made the player put in a number
SURSTRรMMING MENTIONED ๐
honestly the fact that I don't quite get how to use the readonlyspans means I'm not gonna bother, it's reached more then enough speedup (if at 1 million characters it takes 30 milliseconds to run it'd still have fine runtime at 30 million characters of just 1 second [which is fine for the usecase I deal with] and at that point I'm certain the game would just kill me if I ever had it display that name [already the save file menu is essentially nonfunctional {like, we're talking spf instead of fps}])
still I'll keep that in mind if I get performance problems again in the future
does anyone know why mini bars makes my game run like dogshit whenever it draws all the hp bars on the screen?
the github for the curious https://github.com/Coldopa/Mini-Bars
or i guess this was an older ver of the mod, the changelog shows shockah and atra helped optimize it
so maybe it DOESNT do this anymore.
(unhelpful answer) probably from adding a bunch of draw calls to the game loop and missing frame targets /lh
what does this do
@mystic skiff hi, I made https://github.com/Digus/StardewValleyMods/pull/324 to fix an incompat issue with Animal Husbandry and Animal Multiproduce. if you can take a look that'd be awesome, thanks!
Is ItemExtensions currently buggy?
Oh...looks like the latest update broke custom nodes. Any news of a fix?
for now revert to the previous version
poihaps. i donno
It would init a new texture2d instance
Eight times. Per monster. Per tick
Ah, okay, sounds good then. When I do my merge round Iโll definitely look into merging it (and probably just do any changes needed if there are any myself since if I postpone to shortly before CP releases then there wouldnโt be much time to hope youโre around and free for revisions ๐ )
that seems bad
aye thanks
ok thats why it was lagging to shit
why isnt it just stamina rect...
why......
becaus
no
because i eated the rect ๐
I'm just looking at a mod that has duplicate keys in its i18n file. Is that an error or is that something that's possible?
Does anyone know if there are any tilesheet mods that add sections like these recolored to match the interior of the mines? DaisyNiko's adds a few other sections but not these ones
Error, as far as I'm aware. I'm guessing that the second one in the i18n is the one that always applies (if the lines themselves are different).
on a technical level i believe you cant count on which one is the one that will apply, as dictionaries are not ordered
(however its often safe to assume)
the default behavior of newtonsoft which SMAPI isn't overriding is that the later property names will replace the earlier ones
newtonsoft coming in once again to change understandings
JSON spec is order isn't guarenteed, but newtonsoft is deterministic as to how it will populate
does SMAPI's i18n loader replace the earlier one, though, or does it log a warning and use the first
reloading does a full clear before repopulating, but the i18n handler itself never directly sees the raw json, only a Dictionary<string,string> passed in, so it will never even see the duplicate key
I'll report it to the author then ๐
how do you add multiple possible dialogues that is randomly selected per day? e.g, like on weekends, any of "Hi, how are you?" "It's finally the weekend!" "I'm going to the saloon tonight." "How was your week?" are randomly chosen for the day
thanks! sorry if it's a dumb question but what's a dynamic token?
does anyone know how open the permissions are for this mod? Juliet and jessie do not have portraits in nyapu's style
https://www.nexusmods.com/stardewvalley/mods/16045
at least seasonal wise
there's a permissions section you can read. which part do you have questions about
tysm! ๐
kailey has made them, but she has not published them to her tilesheet mod afaik!
Darn, hope she does at some point! I'm trying to make my own for now but it's not going great ๐คฃ
it said that if i wanna use their assets feel free to do so but to see Lemurkat's permissions and credit all author's who's work was used as a basis. should i ask lemurkat or am i fine to make portraits??
I believe you'd need to reach out to lemur for permissions, considering the original perms of ES
(you were just asking questions, there's nothing to apologize!)
What is the sharogg discord acc?
I am now in charge of seasonally cute. What do you want to know?
If its Nyapu style stuff, go for it
I was just gonna say yhe only thing id prefer no one to do is rerelease the SC mod updated, and that's cos im mostly done updating it
oh ok! just make it a replacer? or can it be a content patcher mod? i know many don't encourage replacers incase ya wanna unistall
Oh redoing the portraits nyapu style is fine
yee!
But when i update they will be switched to the 1.6 mechanism of loading them
it'll just take a bit since there's a decent number of portraits and im still learning
kk!
Ftr, im pretty much aok with redrawn portraits of any of my characters as long as it isn't AI.
how do you guys figure out the stuff for the area of sprites? im a little uncertain what im to place there if i were to make my own things...
What sprites are you referring to? NPCs, objects, crops, map tilesheets, etc?
mainly objects, crops, and fashion sense stuff
And are you referring to sizes when you say "the area of sprites"?
that and how do i determine what i write when doing the content json
Use vanilla spritesheets as a base to start your drawing to make sure that you're using the same sizes that vanilla does. If you open Maps/springobjects, for example, you will see that the majority of the objects are 16x16px.
As for what to write, I'm not sure what you mean. Usually you write the sprite index, which is the square that the sprite is in on your spritesheet starting from 0 at the top left.
thankfully you actually gave me the answer to the question you were uncertain on, i just needed an explanation like that so thank youuu

I'm glad I could help!
Hi, I just learned that I cannot throw exceptions in an [OnDeserialized] method because it will just say "Error was thrown in target of an Invocation"
Well it's not looking too bad at least :D
can i dynamically reload a c# mod without restarting the game?
one you're making? if you're using Visual Studio, then you can hot reload bits of code, but not quite everything
yes one i'm making. using vs code atm
then you can't
k thanks!
!reload -- to be clear, you can hot-reload C# mods at runtime when using Visual Studio Community
- Content Patcher pack: enter
patch reload <your_mod_id>in the SMAPI console window. This will reload and reapply all your patches (but won't recalculate theConfigSchemaorDynamicTokensections if you use them). - Translation files: enter
reload_i18nin the SMAPI console window. If it's for a Content Patcher pack, also runpatch reloadafterwards. - C#: see the Visual Studio hot reload or Rider hot reload feature.
yeah i might just switch then
not in VS Code though
also i thought Rider also couldn't do it?
not without targeting .NET 8 at least, which we can't do
depends on your task and workflow! if you're tweaking behaviours often or just the sort to guess-and-check you'll save plenty of time with hot reload, such as for UI design updates
I've been working on FF with VSCode without hot reload and I'm still alive
would also be nice just to get proper debugging
sane though, that's another question...
Don't take my advice, I'm infinitely biased against MS. I'd recommend Neovim if I actually finished setting it up
i wouldn't imagine structured design like frameworks would benefit much from hot-reload, no
definitely more useful for user-facing behaviours that'd need tweaking to get just right
eh been here done that.. lived the debian/i3/nvim life for a couple of months. it's great that i actually got to learn vim which i now also use at work with linux servers, but other than that, i'm just too baked in the MS ecosystem
oh damn the building/deploying/debugging workflow in VS is setup nicely. hats off to the people who set this up
it's always a matter of balancing convenience and freedom
what would be a simple way to display an in game text input box?
what i mean to ask is there anything built in that's ready to use or do i have to make it myself ๐
I suppose i can use the chat for now ๐
Maybe you can look at what is used to name babies
or animals
does anyone know how can i make a new store for farm animals so that marnie isn't the only one selling animals? I'm still trying to figure that one out.
[[Modding:Shops]]

No worries! Welcome in
Isn't that hardcoded and chu had to make a mod to unhardcode it?
who is chu?
C# modmaker. I'm having a look through their mods now to see if I remembered correctly.
Ah yup you need this mod to make anyone other than Marnie sell animals: https://www.nexusmods.com/stardewvalley/mods/29997
thank you so much!
This is lovely
Aba to the rescue as always 
Just making use of my constant hanging out here lol
okay, i just realized i have no idea how to create mods at all HAHAHAH
!Startmodding
Making mods can be broadly divided into two categories:
- Content packs are formatted text files, and don't need any programming knowledge. They can add/edit NPCs, maps, new items, shops, and more. To get started, see the list of framework mods, the wiki tutorial for Content Patcher, and there might be relevant guides on the tutorial wiki.
- C# mods use programming code to change fundamental game mechanics. See getting started with C# modding.
Usually itโs easier to start with making content packs, since you don't need to learn programming.
there's actually a cunning trick here -- you can click the Requirements subheading on the Livestock Bazaar mod page above to see all the mods which use it, and if they're using JSON files, you can simply peep inside to see exactly how they're made
best follow the guides linked above, though
that is such a good suggestion, thank you!
no problem! more accurately it won't show you how they're made, but rather exactly what will give you the results they wanted.
you'll often find these JSON files are absolutely not self-explanatory, so you'll want to read the documentation for any frameworks being used to find the usages, examples, and capabilities for each
and of course you can ask here with any questions as you go, and (usually) someone will be around to answer
oh i want to actually ask something. i am also using the donkeys mod and for some reason it says that they require a coop even though the mod requires a big barn for them. is that normal? i already checked their content file and there is no indicator for coop anywhere there. same goes for my alpaca
picture for reference
Would love to see exotic animals sells by other people
this is what i am trying to do! haha
Yeah i read that
I'm getting a bit bothered by modding, all mod works together, but in term of game design, not that much
We have the chance oh having a fantastic expansion mod, that is SVE, tons of QOL, tons of new crops and animal and ressources but no mod that take care of making a great cooking balance of all of those, or even a restaurant mod idk, there is a big lack on this spot, tons of cooking mod but none where people sar down together and talk about how big the quality moded and vanilla crops/animals pool is, and what to do with it so it stay balanced if you have all the mod or if you only have one so vanilla don't stay on his side
This is not really a channel for making suggestions
Unless you want to start working on that mod yourself, in that case go ahead
Shit
works perfectly, thanks for the hint!
So I was digging through code to understand the mechanics of gaining experience for a maxxed out skills challenge and I stumbled upon something that might be interesting
So, I know about the 'secret' Luck stat which exists and for all I've heard cannot be levelled but is modified by items such as the Lucky Ring.
However, and I do apologise if I'm wrong or if this is already known, I've found a couple of instances where it DOES seem to gain experience
but it was too incompatible with other mods doing/handling/displaying skills, so i believe nowadays it's better to tinker with a separate SpaceCore-based Luck skill mod
It seems as though opening chests in certain cases might grant some Luck EXP
like, without any tinkering with it?
Yup
It's listed in... lemme find t he two locations
In chests.cs, fishingrod.cs, and ... I THINK that's xp gained for harvesting giant crops too in GiantCrops.cs
Now, I honestly do not know if there is somethign else in the game code which RESETS luck exp rendering this gain null and void
There's also SOMETHING in MineShaft.cs which seems to trigger very rarely when the player breaks a rock and receives a geode of any kind (from what I'm looking at, I BELIEVE that only applies to when you're in the Mines and not for rocks you break on your farm?)
Farmer.gainExperience short-circuits the exp gain if the skill is luck, here (luck being 5)
public virtual void gainExperience(int which, int howMuch)
{
if (which == 5 || howMuch <= 0)
{
return;
}```
Ahhh, THERE we go
so the game does call that occasionally, but doesn't actually ever raise it, afaict
What an absolutely bizarre way to do the coding, god bless
Thank you for explaining; I was THINKING there must be something I was missing
maybe the plan was to have the luck stat increased at first but then it was changed later
with the option to bring it back in without having to edit all the places again
The wiki also says it's 14 experience for chopping down a tree and 2 for the stump, but I only saw 12/1 experience respectively in the game files. Is this a wiki error or is there some hidden foraging xp that comes into play?
Yeah, this part makes sense. I msotly thought it was odd you wouldn't just delete all instances where the player does gain experience (there's only a couple of 'em), but it does track that maybe CA just wanted to keep 'em in case he came back to 'em later.
does anyone know about this problem?
You might not have the latest version decompiled? I see the values 14 and 2 in Tree.cs, but they were 12 and 1 until SDV v1.6.12
(according to the wiki History notes at the bottom, anyway)
Oh, interesting! Yeah, I have a 1.6 decompiled but it may very wel lbe a little out of date
Looks like that Donkey mod uses the wrong text for the "missing building" description here:
"ShopMissingBuildingDescription": "[LocalizedText Strings\\StringsFromCSFiles:Utility.cs.5926]",```
that line of text *says* it requires a coop, even though it requires a barn; it should say this instead:
```json
"ShopMissingBuildingDescription": "[LocalizedText Strings\\StringsFromCSFiles:Utility.cs.5936]",```
(5926 vs 5936)
big help!
fwiw, wiki errors do happen and if you have the latest decompile and catch something that doesnโt line up, they are very welcoming of corrections that cite the source code in the edit description! just remember to cite the code because they get so many nonsense edits that uncited ones tend to be immediately reverted with no explanation
I usually go with class and method name
(or content file and key for content mistakes)
(if youโre wondering why the reaction to uncited changes is so harsh, itโs because there really are a lot of nonsensical edits - for example, there was a switch bug that made all gifts loved gifts for everyone for a while, and the number of people who edited NPCsโ pages to add something like โtrashโ to their loved gifts was not small)
also, I believe luck was an unimplemented vanilla skill iirc, which is why there are references to it in the code but theyโre never used (itโs not the only unimplemented thing in the code/assets - see also the several unimplemented tools in the tool spritesheet)
thatโs just one example but I saw several and I donโt even really keep an eye on the wiki haha
so I assume that over the time that bug was around they had a fair few
dang
Yaaay
do you have a list for strings like these?
If you mean in general, you'd need to unpack the game files and dig through multiple folders/files, but if you just need the building requirement lines:
"Utility.cs.5926": "Requires construction of a Coop",
"Utility.cs.5931": "Requires construction of a Barn",
"Utility.cs.5936": "Requires construction of a Big Barn",
"Utility.cs.5940": "Requires construction of a Big Coop",
"Utility.cs.5944": "Requires construction of a Deluxe Barn",
"Utility.cs.5947": "Requires construction of a Deluxe Coop",
"Utility.cs.5950": "Requires construction of a Deluxe Barn",```
thanks so much!
I didn't even notice when posting that, but I guess there are two copies of the "deluxe barn" line in every language
(& both used in vanilla, one by sheep and the other by pigs)
can someone remind me the smapi code to see the old cutscene?
I just wanted to show the cutscene to my friend but it's appeared glitched XD
but ty, it's working
dear homies
I just made a PFM mod to turn Bone Swords into fertilizer at the bone mill
Then realized you can't actually... pick up a weapon... in any way... to put it in a producer
Am I missing anything or is this impossible?
my dumb brains first thought was to just to try and automate it via chest into the machine to see if that works lol
ah that's not dumb at least it's outside the box which is how solutions get found. but yeah you can't pick them up at all.
what mod is this?
a mod i made because i wanted a search function
can i use it? hehe it is for searching items in chest right?
yes it searches in all chests in the same area
2 cakes 
i guess, i haven't made it public. i suppose i can upload it here
would love to try it out!
it's called where is my pickaxe (wimp) because, well, i couldn't find my pickaxe
search key is hard coded to K
oh it only works with the english names btw. even if your language is set to smth different
it wasn't made with sharing in mind ๐
it works great, mate! thaaanls
good to hear!
maybe i should build it out a bit ๐ค i18n support, customizable keybind, find or make something else as text input dialogue that doesn't have the "generate random name" button, show an arrow towards the chest if it's out of the viewport
up to you! would love to see it grow tho, pretty convenient
If you've got the energy to work on it, go for it! 
one thing that stops me from it atm is that i'm very new in the game. just got into winter of my first year. so I don't know much about how things change. Recently I've unlocked the kitchen which has a fridge which should also be included in the search I suppose ๐ค
Possibly a dumb question; I want to set up some "secret" coop animals, in that you need to use silly items to hatch them rather than purchase them from Marnie. I managed to get a non-egg item into the incubator by simply having "EggItemIds": ["103"] in the animal's json, but the day after, the incubator is just empty, as if the item wasn't placed in there in the first place. Looking at the Incubator's data in Machines.json, there's no context tag that would imply I need to have on an item for it to be used, so I'm at a loss. How can I set it up so that I can use a non-egg item in the incubator and hatch an animal that way?
how do you have a randomized When condition? i can tell just from looking at this that it probably isn't correct 
that should work, can you post your code
https://smapi.io/json/none/56313404085d40a3b2b855dc9454d029 here's what I have
if I change it so I can just buy it from Marnie, the animal works fine. It's just the egg thing left that's confusing me.
Technically should work
(I think..)
You can take out {{ }} around random but yeah that's fine
But what is the specific thing u be randoming
whether an npc is wearing a mask or not
Could do appearances if u want
Although not as an overlay so perhaps not
What's the desired percent chance?
im planning on doing seasonals and dont really wanna do two versions (masked and unmasked) for every outfit
are you sure the incubator is empty, have you tested with just your mod, and/or try again
(silly questions but you should have done everything correctly)
not exactly sure yet, ill probably tweak it until it feels right after testing a little
Well rn it 20%
Had to walk away, sorry for slow response. Yeah, it keeps happening. Tried with just my mod, and no luck. Item goes in, I sleep, I go back to check, and the incubator's empty
Shouldn't it be other way around then
If the patch is applying the editimage mask overlay
What if you try a regular egg
Tried that before posting. Normal egg works just fine
Even other modded eggs work fine, both from my mod and others I've got downloaded
anything in the logs?
Nope, nothing
Well what the heck, it worked with a different item ID. I changed 103 to DeluxeBait (random choice, I know), and it let me incubate just fine with the freaky baby hatching as intended.
Now it's working with id 103. I don't know what I did for it to suddenly work, but... it just works now? I didn't change any code other than swapping the ID around in the EggItemIds section of my code.
computer gremlins
Oh boy no, I can IMAGINE the need to be real strict about citing your sources! Bare minimum it's an informational resource, and also, not citing the source code is how you get errors in the first place...!
Thanks for the heads up :O I was thinking of sending in a suggested edit clarifying one of the paragraphs describing moss mechanics - it was kind of confusing and I had to dig into the source code to find the answer for my question.
(I actually have two questions if anyone knows the answer off the top of my head because I wasn't sure how to interpret the source code, please tell me if I should move these out of Modding:
a) when you harvest a fish pond and get more than one item (e.g. 3 roe), does the quantity affect the calculation for xp received or not?
b) when initializing a farm, where can I find the data for how debris is spawned - most particularly, trees and large stumps? I'm especially curious to find out whether all adult trees spawn at growth stage 4)
a) seems not (you can see the calculation in FishPond.doAction - it doesn't take stack into account)
b) the initial tree and debris spawns are part of the map's tmx itself. the game may add some extra weeds on top
hellooooo! Can anyone take a look at my smapi log and help me out? https://smapi.io/log/9e7704c5ee6347e79dc1421e76433977
Log Info: SMAPI 4.2.1 with SDV 1.6.15 build 24356 on Unix 6.8.0.59, with 95 C# mods and 79 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
there's something happening when my mod tries to load
when testing a mod you should really do that with a minimal modload
oops right, I'd been slowly adding more to test compatibility with the last version
also, try refreshing your modlist after you took out unneeded mods
Okie, so I did that and the log looks like that https://smapi.io/log/ceac31f1518c4bf08c4fe046bd4a0bb3
Log Info: SMAPI 4.2.1 with SDV 1.6.15 build 24356 on Unix 6.8.0.59, with 5 C# mods and 4 content packs.

Hello, I'm currently working on modifying the farmhouse map. I've made changes to FarmHouse_Crib_1.tmx, FarmHouse_Crib_2.tmx, and FarmHouse_Cellar.tmx. However, after upgrading the house in-game, two cribs and the original cellar entrance appear. One of the cribs is still located in its original vanilla position.
How should I resolve this issue? I searched online and found that it's likely due to hardcoded coordinates used by the game. Many suggest keeping the vanilla positions to avoid problems. Is there a better solution?
MMAP can relocate the crib, p sure it can also do something bout the cellar, you'd have to read about it on the git
Could you please share a link?
jsut click on the readme link to read about the stuff, the building stuff should be further at the bottom of that page
Thank you very much
Huh... I can't find anything in here that seems to generate random debris. (Unless debris and trees are spawned in pre-determined locations on farms and I have not noticed this entire time!)
Yeah, but... either I'm missing a coding fundamental or I'm explaining myself wrong I think ๐ค
So when I start a new game for the very first time, the farm is populated with random twigs, weeds, trees, logs, boulders etc.
They aren't random
Ahhh okay, so it IS pre-established on each farm map and I just never noticed that it wasn't changing every time? XD
Yes
Okay, THAT makes sense. Thank you very much!
yeah jsut open any farm map in tiled and you'll see
So if I look at a map of a brand now Standard Farm, it will always have exactly that many Stumps and Boulders in those exact locations?
Yeah
perfect and magic, thank you very much to the both of you
overnight from night 0 to night 1 there's some debris spreading that occurs
so it's not 1000% the same every time
but it's basically the same every time yes
okay I'm still not having success. I can do other harmony hooks (I tested GameLocation.OnStoneDestroyed) but not this one. How could I check if a function is being inlined?
(Since that's the error case I see mentioned)
Utility.CreateRandom
If the harmonysummary says it's patched but it's not acting like like it is like inlined
Are you on a mac
yeah
Well damn
where's the harmony summary
Mac is far more aggressive on the inlining
I haven't heard of that
!harmonysummary
To get a little more info, can you:
- Load into the game (the title screen is fine).
- Type
harmony_summaryinto the SMAPI window and press enter. - Upload your SMAPI log to https://smapi.io/log (instructions on page)
- Post the log link here?
ah then yes indeed that says it's patched
to double check I'm doing it right:
var harmony = new Harmony(this.ModManifest.UniqueID);
harmony.Patch(
original: AccessTools.Method(typeof(Utility), nameof(Utility.CreateRandom)),
prefix: new HarmonyMethod(typeof(ModEntry), nameof(ModEntry.CreateVerboseRandom))
);
and
public static bool CreateVerboseRandom(double seedA, ref Random __result, double seedB = 0.0, double seedC = 0.0, double seedD = 0.0, double seedE = 0.0)
(my goal is to replace random with a new random that logs every time it's being called, since I want to trace random calls to hopefully look into manipulating game1.random on file creation)
harmony_summary tells me
StardewValley.Utility.CreateRandom
- Alexa314.VerboseRandom (prefix)
so I know harmony likes it
but I want to make sure that I haven't somehow messed up the arguments
Looks right to me
Exactly what I have that works right on windows
would that mean that that mod just wouldn't work for me, incidentally?
High probability yeah
ugh. I guess I can try to transpiler? patch the game1.random = calls (since I only care about game1.random)
but that's gonna be annnoying
What are you trying to do?
But you're right there are only two times game1.random is set iirc
3, but close enough
I just want to know exactly when game1.random is used and what number random call it is
I made a class VerboseRandom which does that; it has an internal counter and every random call it logs "Hey this is random call #x"
Ah okay yeah just transpile that in
I still can't figure out why I keep getting this same error https://smapi.io/log/341033417d9c43d9b730658235ec75e1
Log Info: SMAPI 4.2.1 with SDV 1.6.15 build 24356 on Unix 6.8.0.59, with 5 C# mods and 4 content packs.
Close and restart stardrop
Okie dokie I did and it still does this https://smapi.io/log/50da7f187b8747e4a7ea068761133150
Log Info: SMAPI 4.2.1 with SDV 1.6.15 build 24356 on Unix 6.8.0.59, with 5 C# mods and 4 content packs.
hey all! i apologize if this is the wrong channel to ask this, it's been a minute since i've been around here ^-^;
so it's been over a year since i last looked at stardew stuff (i was in full-swing of a playthrough when 1.6 dropped and broke everything i had, so i didn't bother looking more into fixing it til recently)
which leads me to this question: what's the best way a friend and i can play multiplayer, and we each have our own farm maps to work with? i saw this mod (https://www.nexusmods.com/stardewvalley/mods/26873) which says it allows it, but it also apparently shows every farm, like it's unconfigurable to only show two, unless i misread it :o
i have a bit of map editing experience where i can maybe fix things myself but i just wanted to know if there was already a solution of sorts to this c:
thank you in advance, and sorry for the longer message 
T.T That didn't seem to help sry
I don't knwo if it helps, but earlier on in the thread ([14:52:55 TRACE SMAPI] Ignored loose files) it lists a number of CP mod packs, with The Wolf being one of the listed mods?
Hmm, okie I'll keep fiddling around with it
If anyone able to help with my code going to post it in a sec.
what was that mod that lets you set your default player speed? Tired of having to set it with debug commands..
CJB cheats lets you set a player speed and that does not reset
Okay I'm looking at https://stardewmodding.wiki.gg/wiki/Tutorial:_Harmony_Patching#Transpilers and trying stuff out but it's not currently succeeding (complaining about unable to find things). Here's what I'm trying to do:
According to ILSpy, the relevant il lines in SaveGame.getLoadEnumerator are
IL_0cbe: call class [System.Runtime]System.Random StardewValley.Utility::CreateDaySaveRandom(float64, float64, float64)
IL_0cc3: stsfld class [System.Runtime]System.Random StardewValley.Game1::random
As such, I'm trying this:
harmony.Patch(
// original: AccessTools.Method(typeof(Game1), nameof(Game1.newDayAfterFade)),
original: AccessTools.Method(typeof(SaveGame), nameof(SaveGame.getLoadEnumerator)),
transpiler: new HarmonyMethod(typeof(ModEntry), nameof(random_transpiler))
);
public static IEnumerable<CodeInstruction> random_transpiler(IEnumerable<CodeInstruction> instructions)
{
CodeMatcher matcher = new(instructions);
MethodInfo setRandom = AccessTools.PropertyGetter(typeof(Game1), nameof(Game1.random));
MethodInfo makeVerbose = AccessTools.Method(typeof(ModEntry), nameof(CreateVerboseDaySaveRandom));
matcher.MatchStartForward(
new CodeMatch(OpCodes.Stsfld, setRandom) //finds where we would set random into memory (also errors if I delete setRandom)
)
.ThrowIfNotMatch($"Could not find entry point for {nameof(random_transpiler)}")
.Advance(-1).RemoveInstruction() //removes the function call to CreateRandom
.Insert(
new CodeInstruction(OpCodes.Call,makeVerbose) //Replaces it with our own createverboserandom.
);
return matcher.InstructionEnumeration();
}
but the throwifnotmatch is erroring
It won't
It's a....what's it called it
Inner method or smth
I'm not at home so I hope this example makes sense
ooo example code for hijacking game1.random
It doesn't fully work btw, I never finished the transpiler
But it at least finds the right spot
of course you're doing a different thing than me but still this will hopefully be great reference
progress! it now crashes because Common Language Runtime detected an invalid program because I don't know what I'm doing. but it's closer!
okay it looks like
IL_0006: call int32 StardewValley.Utility::CreateRandomSeed(float64, float64, float64, float64, float64)
IL_000b: newobj instance void [System.Runtime]System.Random::.ctor(int32)
IL_0010: ret
and I'm currently doing
matcher.MatchStartForward(
new CodeMatch(OpCodes.Call, typeof(Utility).GetMethod(nameof(Utility.CreateRandomSeed))) //finds where we create the seed
)
.ThrowIfNotMatch($"Could not find entry point for {nameof(saverandom_transpiler)}") //actually _newdayafterfade forgot to rename
.Advance(1) //moves from the creation of the seed to the creation of the random
.RemoveInstruction() //removes the random instruction
.Insert(new CodeInstruction(OpCodes.Newobj, makeVerbose) //Replaces it with our own createverboserandom.
);
What's makeVerbose
oh oopsies you're so right MethodInfo makeVerbose = AccessTools.Method(typeof(ModEntry), nameof(CreateVerboseDaySaveRandom)); I didn't include that
Yeah no you need to yeet the previous instructions too
You see how that is...wait a second
it means u make it real long
See how that is utility.createrandomโโseedโโ?
You need to remove that instr too
And the createobj
oh right yeppp
@harsh bobcat You leveled up to Cowpoke. You can now speak in our voice channels and share images in all channels!
okay so my thoughts are that at that moment on the stack we have the 5 arguments for createrandom. I delete the create random, delete the new obj, and replace it with a call to createverbose random which in theory should take the 5 arguments off the stack and replace it with the new VerboseRandom object? It's telling me JIT compiler encountered invalid IL code or an internal limitation rn.
.RemoveInstruction() //Removes the create random seed call
.Advance(1) //moves to the new obj
.RemoveInstruction() //removes the random instruction
.Insert(new CodeInstruction(OpCodes.Call, makeVerbose) //Replaces it with our own createverboserandom.
okay this complains that
very annoyed I couldn't just prefix/postfix it il instructions are annoying
Remove the Advance(1) I think
I tried, and it still complained
You're removing, right?
Wait no you did you change MakeVerboseRandom to return the random
CreateVerboseRandom takes 5 doubles and returns a VerboseRandom
This is the full createrandom function according to ilspy
.method public hidebysig static
class [System.Runtime]System.Random CreateRandom (
float64 seedA,
[opt] float64 seedB,
[opt] float64 seedC,
[opt] float64 seedD,
[opt] float64 seedE
) cil managed
{
.param [2] = float64(0.0)
.param [3] = float64(0.0)
.param [4] = float64(0.0)
.param [5] = float64(0.0)
// Method begins at RVA 0x102aa6
// Header size: 1
// Code size: 17 (0x11)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldarg.1
IL_0002: ldarg.2
IL_0003: ldarg.3
IL_0004: ldarg.s seedE
IL_0006: call int32 StardewValley.Utility::CreateRandomSeed(float64, float64, float64, float64, float64)
IL_000b: newobj instance void [System.Runtime]System.Random::.ctor(int32)
IL_0010: ret
} // end of method Utility::CreateRandom
here is my whole relevant code as a screenshot
Complains InvalidProgramException: The JIT compiler encountered invalid IL code or an internal limitation which shows it at least found it
Oh interesting - putting the Advance(1) back in makes it say InvalidProgramException: Common Language Runtime detected an invalid program instead
idk if that's super illuminating but it's better than nothing
you can log the final result of the matcher and see the generated IL
and check whether you misplaced an instruction or smth
how would I do that?
something like
foreach (var instruction in matcher.InstructionEnumeration()) {
Log($"{instruction.opcode} {instruction.operand}", LogLevel.Trace);
}
ah specifically yoinking opcode and operand
that makes sense
okay that produces a lot of lines but it does include the lines I want to look at. with the ability to see what's happening I'll try playing around with it myself again
this might be a stupid question but why not just patch random.Next() and associated methods if you want to get the result of every random call? i feel like there'd be less hurdles but also im an idiot so im probably wrong lol
I've tried almost everything I can think of except starting over and I keep getting the same freaking message even though everything else looks right as far as I can tell
T.T
I don't know how to add an extra variable to a class, since random is used multiple times I want to see specifically the game1.random uses
my first attempt was to prefix patch createrandom to have it return my verboserandom but it's apparently inlined on mac so I can't do that
I guess actually idk if any non-game1.random's will get used during the portion of time I'm interested in
oh I could use __instance to log who is calling
that might just be way simpler
gonna try that for a bit
(there's also the fact that I lose the convenience of only changing Random.Sample, which is called every time)
(apparently I can't change Random.Sample because it's protected 3:)
let's go I actually got some random logging. now I just have to make sure I log everything
how do I patch a constructor? I'm trying to do Random.Random but that says it doesn't exist, Random.ctor doesn't work, and nameof(Random) just complains
I can clearly see people saying it is possible to harmony patch a constructor but I'm only ever finding people who say "yes it's possible" and not "how to access the constructor"
Hello, how are you? If I share a log, could you help me out? I was installing mods on an already existing save, and now I'm getting an error. The strange thing is that the mods I added shouldn't cause issues with existing saves, but there might be a conflict between them.
The problem happens when I try to save the game. I went through the trouble of uninstalling all the mods to check if the save could work againโand it did. Then, I started adding the mods back in small groups to identify the conflict. That process seemed to point to CloudSkyes, but even after uninstalling it, the save still crashes when trying to save the game.
If I uninstall all the mods againโexcept the farm map mod for obvious reasonsโI can save the game without any issues.
I couldnโt figure out from the log which mod is causing the conflict, or if itโs multiple mods.
If I canโt recover the save, itโs not the end of the world, haha, but Iโm dying of curiosity to figure out where the problem is.
if this isnt about the mod youre making then you should head over to #1272025932932055121
ok thanks
Oh, but it's not a channel where I can write and ask questions. I just need someone to check my log. I guess I'll have to look for help elsewhere then.
it's a forum channel, make a post
you open a thread, write about your rpoblem and put the log and then wait for people to check your thread and (hopefully) help you
Ah, I found the button to post โ it was because of my lack of peripheral vision. When something isn't where I'm used to seeing it, I just don't notice it. Since the option to write is usually at the bottom, I didnโt expect it to be at the top, haha. Anyway, I was hoping for a bit more immediate help. If not, Iโll just start a new save with all the mods already installed โ that way, it seems thereโs no conflict. My main intention was to clear up the doubt and learn from it.
it's just as immidiate of help as this channel, with the bonuses of being in the right place and without the worry of your message getting lost
Yes, itโs no problem. Iโll just leave the issue there as a matter of curiosity. Thanks!
@ivory plume any chance we could get an IsPrismatic property for objects in 1.6.16 like the existing one for hats/pants?
Hello! I was trying to add this item i added through this (check screenshot), and i was extremely confused about how i can add it to the AG, the shop wiki is extremely confusing
Can anyone help please?
hmm and allow colored objects to cycle colors if made with a color_prismatic item
prismatic wine 
random question: im bad at imagining this shit so....if i put r 0.2(aka 20% chance) for an event to happen would that possibly take too long to happen(or is this chance also unfluenced by luck or something)
!json At a glance it looks like you have mismatched braces, but if you copy your code to this site (below) that may give you guidance but also make it easier to share your code to here instead of as a screenshot
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.
According to the event data page (https://stardewvalleywiki.com/Modding:Event_data#Built-in_preconditions) it's a pure random chance, so 80% chance it won't happen the first time, 64% it won't happen in the first two times, 51.2% in the first three times, etc.

it gave me this json { "Format": "2.6.0", "Changes": [ { "Action": "Load", "Target": "{{ModId}}/Boots, {{ModId}}/BootsColor", "FromFile": "assets/{{TargetWithoutPath}}.png" }, { "Action": "EditData", "Target": "Data/Boots", "Entries": { "{{ModId}}_PhantomguardEclipsers": "Phantomguard Eclipsers/Outpace the Unseen, Withstand the Unbroken./600/8/8/8/Phantomguard Eclipsers/{{ModId}}\\BootsColor/0/{{ModId}}\\Boots" } }, {} ] }
still a bit hard to visualize how likely itll be. maybe i should try looking for a different precondition. I jsut dont want this event to just play after the heart event i set as sawevent
take out the {} as a starter
^ also, I mean you can literally share the URL with us. Here's the same without the {} in there which at least validates: https://smapi.io/json/none/5fb6cefbc19140f3ac0ed35af9925f0a
Probably not unfortunately, since prismatic object sprites aren't a current game feature and it's probably not something the base will use.
totally unrelated but i love your pfp, pathos
Hello, there is something like fashion sense, but for the farmhand?. Like lift the limitation of the sprite size of the farmhand, add animation support, a convenient menu to choose the skin (mirror) and being visible in multiplayer if the other players has the same mods?
no problem, thanks for the response!
Everything's working fine, except my NPC is spawning in the town map instead of her custom map... her house map is working fine. nothing relevant in the smapi log. my npc's following schedule she's supposed to be doing in her own house.
this is my code in dispos.json about spawning:
{
"Id": "Default",
"Location": "{{ModId}}_IrisHouse",
"Tile": {
"X": 16,
"Y": 5
},
"Direction": "right"
}
]```
whats the schedule like?
Have you slept so that the game can load any schedule updates?
Hello, I am making a simple weapon mod. I got the stats and stuff to work, but I cannot get the texture to load. I tried putting the texture in an assets folder, but i cant get it to work
and you did load your tilesheet?
or seems to at least
ok and how do i add these boots to the ag
you edit the shop
ill try sleeping!
i'm really new to this
can you please give like a guideline or something
https://stardewvalleywiki.com/Modding:Shops scroll down to the examples thatll tell you how to edit an existing shop
this doesn't really help :(
sorry, had to grab the link
i'm tried but it's extremely confusing
no no it's fine
i slept and it worked now! time to figure out dialogue ๐
๐คฆโโ๏ธ no... Something so simple. Thank you!
Sorry this is my first time modding
should be something like this https://smapi.io/json/content-patcher/f87d415459f9470fab3a01ec951472b5
would this work ```json
{
"Format": "2.6.0",
"Changes": [
{
"Action": "EditData",
"Target": "Data/Shops",
"Entries": {
"Example.ModId_CustomShop": {
"Owners": [
{
"Name": "Any",
"Dialogues": [
{
"Id": "Example.ModId_SunnySummer",
"Condition": "SEASON Summer, WEATHER Here Sun",
"Dialogue": "Ice-cream is perfect for a day like this."
},
{
"Id": "Example.ModId_Default",
"Dialogue": "Welcome to the only place in town for pufferfish!"
}
]
}
],
"Items": [
{
"Id": "Example.ModId_IceCream",
"Condition": "SEASON Summer",
"ItemId": "(O)233"
},
{
"Id": "Example.ModId_PufferFish",
"ItemId": "(O)128",
"Price": 1000,
"AvailableStock": 1,
"AvailableStockLimit": "Player"
},
{
"Id": "Example.ModId_PhantomBoots",
"ItemId": "{{ModId}}_PhantomguardEclipsers",
"Price": 600
}
]
}
}
},
{
"Action": "Load",
"Target": "{{ModId}}/Boots, {{ModId}}/BootsColor",
"FromFile": "assets/{{TargetWithoutPath}}.png"
},
{
"Action": "EditData",
"Target": "Data/Boots",
"Entries": {
"{{ModId}}_PhantomguardEclipsers": "Phantomguard Eclipsers/Outpace the Unseen, Withstand the Unbroken./600/8/8/8/Phantomguard Eclipsers/{{ModId}}\BootsColor/0/{{ModId}}\Boots"
}
}
]
}
dont be sorry, we all start somewhere lol. i still get confused and stuff bout many things
just put your boots id where "YOUR_ITEM_ID" is and change the price
any csharpers in the chat, i am going to yell very loudly
sup
looks about right, just try it out ingame to see if its added
what tf is Begin.
alright thanks
Looks like a method on SpriteBatch https://docs.monogame.net/api/Microsoft.Xna.Framework.Graphics.SpriteBatch.html but idk why that exception is being thrown
When is this method getting called?
your method, I mean
The game alternates between updating the game state ("update loop") and drawing to the screen ("draw loop"). It looks like you're trying to draw to the screen outside the draw loop?
works but it sets immunity to +1 and defense to +1 when i put 8
even to the one you spawn yourself?
hm?
i havent done boots before 
wdym
spawn some in via cjb item spawner or console command
yessir one second
also anyone knows what resolution the boots.png should be?
i put 512 x 512 and the item goes absolutely invisible, but 16x16 was extremely blurry
also i set the selling price to 650 but it sets it to 800, wifi says "Unused. The actual price is calculated as (added defence ร 100) + (added immunity ร 100)."
how do i set the sell price to something else ?
you cant besides changing the stats
if you're selling the item in a shop you can set the purchase price there
not the pruchase price
purchase*
i mean the price for what you sell
if i'm being clear
right, I added just in case
making a patch for a patch, the original patch uses a config to select an asset, i am using CMCT to read that config but i dont know what would be the right formating to read the CMCT token and make it act the same as the original did:
example:
original file:
config file:
variant = ["1", "2", "3"],
content.json:
"FromFile": "assets/portraits/character-name-{Season}-{variant}.png"
patch patch
should be able to just replace their {variant} token with your {Spiderbuttons.CMCT/Config:whatever} token
some of the mods i use are the drag and drop art replacement type, so i make content.json so instead of needing to manually alter the original mod i can do so via mod loading
when i say replace i just mean like. wherever they would use {variant} you use the CMCT token instead and it should act identically
not actually replacing it in their files
understood
oh :3c heehee
so i need a new method
okey dokey
You can maybe do something like set a static variable, and in the draw events if that variable is set draw stuff
@ivory plume hi pathos I noticed weird thing with farm animal left animation with UseFlippedRightForLeft=false
they seem to still use their right anim but flipped when going left
i replaced rabbit with this so i was expecting the black boxes to be on the left side of the rabbits
Do you happen to need to set the position to be within the viewport? In other words, is it actually just drawing your textures way off screen somewhere? (sometimes I've drawn stuff in the top left of the map instead of the top left of the viewport)
i dont think its bc of that, its a case of IMBS lmao
i dont think i understand how to .... get the values i need to draw from the other method
bc i dont want to reinvent the wheel to get the right variable names
any idea why I keep getting this same errror? https://smapi.io/log/9173a239e06c40ab8762488c78148940
Log Info: SMAPI 4.2.1 with SDV 1.6.15 build 24356 on Unix 6.8.0.59, with 7 C# mods and 4 content packs.
i rly shoulda just paid someone else to recreate this mod for me ~_~
I've tried everything I can think of other than starting over from scratch to make this dang thing work
You could try putting data into a static variable of some kind to pass it along from where you're getting it to where you're using it
i dont know enough to begin splitting this into different static methods ๐ญ i think ill just leave it be for now
like it all worked before i started draw code so im like. maybe i just dont even do it. but i need to do it
You might be able to copy that code into one of the Rendered events https://stardewvalleywiki.com/Modding:Modder_Guide/APIs/Events and use e.spriteBatch instead of Game1.spritebatch
if you just make a static field on your ModEntry class, you can read and write to it from anywhere in your mod
(assuming its public)
I took a quick look, but I'm not sure why that would happen. The animal behavior logic is a lot of code though, so I'd need to dig into it more deeply. It might be something we can look into if we eventually have a new game modding alpha to test stuff.
ill just leave it for now, i dont wanna overwhelm myself. but thanks guys, i will try this later
i was pretty confused too, but when i looked i saw zero calls to AnimateLeft
(also tbc it doesnt have to be in ModEntry, but its not a bad place to put it)
Yeah, sometimes a break can help
i dont know why it is still flipping the sprite even tho rabbits have that flag at false tho
animatedsprite scary
I keep getting errors like Error preloading content pack 'TheWolf'. Technical details:
System.IO.DirectoryNotFoundException: Could not find a part of the path '/home/caracal/.config/Stardrop/Data/Selected Mods/[CP] The Wolf'.
at System.IO.Enumeration.FileSystemEnumerator`1.CreateDirectoryHandle(String path, Boolean ignoreNotFound)
but my content, config, manifest, etc all look like they're in the right place
(Apparently that code was a mystery to the last person who changed it too.)
case Game1.left:
Sprite.AnimateRight(time); // This is intentional for some reason (see below where it's done in the ground base move too)
FacingDirection = Game1.left; // Also note setting FacingDirection directly.
break;
also incidentally while you're here - do you have any clue why mail reading uses StringComparison.InvariantCulture to find %action instead of .Ordinal? When I was upgrading the code to be O(n) instead of O(n^2) [since I'm making mails that are millions of characters long] doing that change was the final change required to finish off the n^2 performance.
Nope; that seems like probably a typo. I can look into fixing those for the next game update.
Thanks!
I don't fully understand string cultures to be honest so maybe there is some reason for it, but invariantculture is only used in 4 places as far as I can tell, with handleactioncommand and handleitemcommand
(Admittedly, the performance impact in a real setting would be completely negligable [a mail which took 6.6 seconds to read instead took 6.3 iirc {and most mails take a handful of milliseconds at most}], my usecase is incredibly incredibly niche)
Iโm just gonna start over and re add stuff until I figure out whatโs breaking it
is there an updated list of ids? the only one i could find was https://docs.google.com/spreadsheets/d/1CpDrw23peQiq-C7F2FjYOMePaYe0Rc9BwQsj3h6sjyo/edit?gid=1082266757#gid=1082266757 and it doesn't have 1.6 items. i have no idea what pineapple id is haha
Morning, Pathos! Long time no see.
Hi!
You can enter list_items "Pineapple" in the SMAPI console window to search item IDs, or check stardewids.com if you prefer a web UI.
Or idk I wanna make a mod but idk how to. I downloaded smapi idk how to after
There's two types of mod, depending on what you want to do. See creating mods on the wiki for more info, and feel free to ask if anything is unclear.
thank you!
There really aren't modpacks
I would ask the Nexus server about collections
even then they aren't great fit for Stardew as stardew modding culture is latest version all the time with many times frequent updates and mod compatibility isn't a time investment
Modpacks shine when mod compatibility is hard and requires a lot of config tuning, and particularly for nexus collections, Skyrim modding has the fun problem where just staring at version numbers too long can corrupt the save files which is why it likes frozen versions
@ivory plume in the new SDV it seems Events.Display.Rendered is not letting things be drawn on top of the global fade to black; before my quotes mod was able to draw a quote on top of the black screen, but now it seems to be drawn under it? I don't see why that's happening in the code, but a mod user pointed it out to me.
Question; what was the method for editing vanilla values again? I want to take every fish found in Data/Fish.json and change all of their maximum sizes, but I'm drawing a blank on how I would do that correctly.
I had the same issue, I chose to use RenderedStep and draw on the Overlays layer. Doesn't answer your question but it's a workaround
great, ty โค๏ธ
works great! tyty
(i'm also curious to hear pathos' answer but i'm glad that worked for you!)
You can use content patcher like usual and use TargetField to overwrite the appropriate field w your own value
you need TargetField so you dont replace the entire fish entry
I figured it was targetfield, but the problem is that the line looks like this;
"128": "Pufferfish/80/floater/1/36/1200 1600/summer/sunny/690 .4 685 .1/4/.3/.5/0/true",
The only thing I would want to edit is the /1/36/, but the field is 128, right?
Oh I forgot that it was a string
The entry is 128 and you can refer to each field starting from 0, 1, 2, 3 etc
I dont have an example onhand but you may be able to look for some other fish data mod and follow what they do
like instead of "Name": "Pufferfish" it would be "0": "Pufferfish"
Pre-1.6 mods to change item names would also be an example of the correct format
such as any of the rabbit foot replacer mods
I'm a bit slow with this, so sorry for the slow response. https://smapi.io/json/none/8b313bed964044b28787892374305f8f Does this snippet look right?
You need to target data/fish but otherwise it should work
Yeah I saw that at the last second lol
Welp, time to try this out. Giant pufferfish record, here I (hopefully) come
You'll want to test it out though, I'm not 100% sure
thanks internet for sending my messages agonizingly slowly lol
It's all good. I just gotta catch a pufferfish instead of an easier fish to catch for testing, no big deal ๐ฅฒ
What does changing the size do anyways?
Absolutely nothing of value. I just want it to say that, when you catch a fish, it's got an absurd size
Hahahhaha
It also shows your record size in collections
Ohh got it. I dont fish much so I didnt pay attention to that
Yeah it's super niche and easy to miss. Like every pufferfish I have yet to catch for testing. If I wasn't so stubborn I'd try other ocean fish too, but now it's a matter of pride
if im using contentpatcher to patch one of the dialogue files, do i need to save my edited file as xnb, or is json fine?
if you are using content patcher to patch a dialogue file, you should apply only your changes (not the edited full file) and use .json, not xnb
the draw event loop went through reworks in 1.6, particularly in how smapi interacted with it (SMAPI internally does not use harmony in 1.6 and can do all its changes either through OOP principles, or vanilla exposing mod hooks that smapi handles (and then exposes to the rest of the mods))
RenderedSteps is called by vanilla at various places in the draw flow
yay, my npc mod is now functional! i havent added events or anything but it has all the basics ๐ it was so fun
congrats!! it may not seem like much but a lot of work does go into just getting to that point 
thank you โค๏ธ
Well my pride is shattered; my file was in winter. Pufferfish don't spawn in winter. That would explain why I can't catch any for testing the edited sizes lol. As for if my edit worked, it definitely edits the size, but it's only catching the maximum size of the fish as shown on the wiki. For example, Red Mullet's max size is 34 inches, and I consistently get 34 inch mullets. My file has 1000 as the intended max size, so I'm not sure if I got the wrong value or not.
there may be a hardcoded max size of fish, and any number above that gets capped
That's what I'm concerned about. I really hope that's not the case, because this was on my bucket list of silly things I really wanted in a mod ๐ฆ
I doubt it's hardcofed like that
More likely than not you have an issue in your code
may
โฎ(๏ฟฃโฝ๏ฟฃโโ)โญ
Tbh I'm not at home so I can't look at it
Well in the event that it's my code (please let it actually be that and not hardcoding), here's what I have.
https://smapi.io/json/none/d41d696883b740378c6a82f86d213b71
(ObjectInformation doesn't exist, and even then never stored the fish size)
You didnt edit data/fish?
Yeah you want data/fish
You can also combine all those btw
Sinz will show you shortly 
there is difficulty in actually obtaining max size fish as its quite random, and fishing level, bait, etc are factors that acts as a multiplier between 0-1 to reduce the size of the fish
HAHAHAHA
float fishSize = 1f;
fishSize *= (float)this.clearWaterDistance / 5f;
int minimumSizeContribution = 1 + who.FishingLevel / 2;
fishSize *= (float)Game1.random.Next(minimumSizeContribution, Math.Max(6, minimumSizeContribution)) / 5f;
if (this.favBait)
{
fishSize *= 1.2f;
}
fishSize *= 1f + (float)Game1.random.Next(-10, 11) / 100f;
fishSize = Math.Max(0f, Math.Min(1f, fishSize));
this.minFishSize = Convert.ToInt32(fields[3]);
this.maxFishSize = Convert.ToInt32(fields[4]);
this.fishSize = (int)((float)this.minFishSize + (float)(this.maxFishSize - this.minFishSize) * fishSize);
this.fishSize++;
the authorities don't want you catching a 2km long sardine
well theres that +1 at the end kicking in
I should probably change 1000 to 999 then
Or, just to be playfully spiteful, change the max size to 2km ๐
Fun fact
The game multiplies that number by 2.54 and uses cm for every language not English
oh I need a mod that does that in english too then
I'm aware. Having to do the math to get approximate metric numbers is rough but not impossible
Time to see if I got the right value for 2km in inches
One baby transpiler
You go do it
I also subtracted 1, to account for that +1 lol
oh for a metric/imperial options toggle
Well that's a massive Walleye
Hey it's stardew
If I wanted a matric option I would go play with Autocad
Now to try this out on a fresh character to see if I can get variance. I keep catching the max size every time.
tbh a metric mod would also require changing the intro signs to not mention miles, and also patch mineral town and some other places too which is #effort
Lol
Enjoy!
I keep on intentionally using Celsius with Americans
Just to watch them squirm
the mostly correct unit of temperature anyway
they deserve to know there's a whole world out there that's measured in celsius ๐
the only time celcius isn't appropriate is when kelvin is more useful
Oh sometimes I do that shit too
Just to be annoying
Sorry
"Yeah it's about 283 Kelvin rn"
Hi bluebs
Long time no see
Any cool new mods?
How are the loc bugs
who is kevin and why is there 283 of him
Hi selph
it can go the other way too. you're free to call it Kevin around actual scientists
You owe me a steak
if more people used kelvin or the freakish Rankine scale, then people might be more willing to accept Inverter AirConditioners are awesome
What's programmer-off-topic
Because for some reason I'm still around despite being no longer a modder
This is a giant step for a brainlet like me who barely understands code. I'm quite happy now. Thanks for everyone's help in getting this INCREDIBLY silly thing work
i can't believe you hit me with the off-topic channel. baited like a sardine
so, mods amirite
Sorry, Pathos
-# panic Pathos is watching, scatter
I'll leave now. || I need to go to the airprot anywyas ||
surprisingly fine, need to push the fix i've had in the bank since before my break, other than that there's just one or two bits to solve
Yeah, the draw cycle was significantly rewritten in 1.6. I'm not sure why Rendered doesn't actually happen after the full render anymore (in some cases?); it's something I still need to look into, and might need a change to the base game. But the RenderedStep event will give you more control if it's working for you.
and the insurmountable tower of 'compatibility with mod-added recipes using between 7 and int.Max ingredients'
i'd imagine the best solution there without making an infinite UI is to have the recipe usable if you own any 6 of the ingredients
similar to vanilla bundles
(I have a mod currently that removed that from vanilla bundles and I need all 12 things for the dye bundle)
you can just tell them to use better crafting and redirect all bugs to khloe
I want my box of chocolates bluebs
ah well naturally this affects BC too lol
how many ingredients does a box of chocolates have ๐
1 chocolate and 1 box
oopsies I messed up on the type of my prefix function
in events, the friendship command accepts negative numbers to take away friendship, right?
bc that mf not takin away the hearts >:(
Make sire you don't have cjb
just friendship <NPC> -750 like the template
what does this have to do w anything /genq
cjb has a friendship thingy
setting
if you have it turned on the event wont make friendship decrease
but how does that affe-
Oh.
what if i dont have it on
also what specifically is the โfriendship thingyโ? friendship decay?
yes
ah ok
if its not that then idk. id guess something else in the event code is making things wonky?
lol epic
thank u friends
-# Did someone try crafting the Everything Bagel again
-# (I suppose I should post my screenshot again since I mentioned it, for people who are unaware of the Everything Bagel.)
anyone wanna talk while playing
Hi! Does anyone know if i can combine AT script and CT script in the same content json? I want to be able to publish the farm animals as AT option, but marnies shop icons should by default just change. So i figured a CT file would work better. Maybe with a config option for color changes, but AT wont really do the trick there. Hope someone can help ๐
what is a CT file. either way the answer is almost definitely no
fyi most people here in this channel are mod authors, who notoriously do not play the game ๐
and if we're talking farm animals you can just add skins for them purely with CP and AT tools can pick them up
wait, this is a discord server for a game?
allegedly
What's a video game
||we are about two months out from that being a serious question from atra||
atra amnesia arc?
There is only a certain amount of room in my brain and
I'm yeeting everything I don't need aggressively
Am I the only one that actually plays and mods? Lmao
no, i literally played earlier today haha, but im trying to tell the person theyll have better luck asking that question elsewhere
I tried but the bouncer person (forgot the name of the moderator) moved me here haha
wha
i was talking about someone else not you, sorry
(also bouncer is a bot)
(that we speak through)
did you see the answers below
Ye but not really getting an anwser yet ๐ณ
two different ppl replied to you tho
maybe I should start ping replying more (if they don't specifically say not to @)
Iโll ask somewhere else. Thank you
...okay, because if you meant "in the same server" there is nowhere else
Im confused
this is the place to ask though...
The stuff about being in the wrong channel was in response to a different person
@quasi osprey [here is answer one](#making-mods-general message), [and here is answer two](#making-mods-general message) (I understand Discord could be confusing, and we should have probably ping replied more)
I made a goose.
I specifically want to use the swimmy boy images in a cutscene, but I'm struggling to phrase a google search correctly to find how to get the correct sprite to show
https://stardewvalleywiki.com/Modding:Event_data
addTemporaryActor is probably what you want? load the image into Animals/YourSpecialGooseIdHere and you can use YourSpecialGooseIdHere in the event command
though I think that'd just use the walking sprites? you may need a separate sprite with just the swim animations, or use another command for temporary sprite
Oh that's a good idea! Thank you!
If you want to control the exact frames used, I'd recommend using temporaryAnimatedSprite
that would be great to replay knowledge based games
Sorry my brain is full of that perfect kick from katseye in debut
Can someone help me understand why even though I have this as my json for FTM I'm still having issues with spawns? I have literally tested with just my mod and the requirements, with all my usual mods, and still nothing. Things do not spawn...
https://smapi.io/json/none/15386cd0dc61427aad45be81c4086a79
It's even to where others are noticing and commenting about it on my mod page and I'm getting annoyed...
I'm definitely not an expert. I've been teaching myself using chat gpt. I don't know if this would help: https://chatgpt.com/share/6833f615-e0a4-800f-a2ba-274080b4abc0
We really, really recommend not using AI of any kind to help you learn how to mod Stardew. It's utterly useless and it's also banned in this server.
^
oh! Thank you!
If you need helping searching for resources or have questions, we're very happy to help you instead :)
I've been using it to find missing /'s for the most part. AI is part of my degree, so I've been putzing around with it
Taught myself html in middle school. I'm not nearly as smart as I was then
Missing forward slashes?
I've been using Notepad++ and it likes to skip around, and I end up losing my /s in say /speak or /emote
Try multilining your events instead. Much easier to avoid missing things.
I'll try that. I wish I could leave them like that ๐
You can
Do you have INS or OVR in the bottom right corner of notepad++?
you can leave them multilined
FTM prints some debug messages about the spawns to the smapi log, it could be useful
I think I might look morew into my issue when I'm not tired from work...Retail just SAPS EVERYTHING from me
I wonder what I'm doing incorrectly then. I get errors about the scripts not being on a single line
SMAPI uses a very forgiving JSON parsing library that will handle newlines for you
its not standard json
This is a snippet of a fully working event
What is the commands? and where can i find list? or is it just as simple as running help in the smaple console
Let me open it and check
oh god...I need to rest XD smaple
It says INS
pufferchick flavored snapple?
ยฏ_(ใ)_/ยฏ
it should do it automatically when you play
all i know is that retail be kiloling my brain
Cuteeeeee
download your file to check, your farm is named n3rdgirl.MassiveFarm.MassiveFarm but you referenced n3rdgirl.MassiveFarm/MassiveFarm in the FTM code
Oh thatโs fine, I was checking you didnโt have it set to overwrite, seeing as you said it was missing forward slashes.
i feel dumb
I'm not sure what's causing it. When I try to highlight sections, it'll immediately jump tot he start of the line.
then I rage
but to be fair I have been mush brained
!json use this instead and share the URL
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.
selph you may be right on the thingy, i will have to look atr it later beause i am just no brain rn
oh god...I am gonna be brainless now and just relax with my cozy game of farming the lettuce
Unrelated to your struggles with N++ but your patch for adding your character to the game has the wrong Target (Characters instead of Data/Characters) and has a bunch of incorrect fields. You also don't have a portrait load which you will need. https://stardewvalleywiki.com/Modding:NPC_data
The sprite loaded in nicely, however my computer isn't letting my take screenshots using printscreen nor wnd shift r. IT was working last night. I'll work on the portrait and fix that data/characters
If you want your duck to just be in the events without being a real NPC, you can do that by the way.
My hope is to have him be an interactable npc after an event. We'll see if I can figure that out ๐
I'm betting I'll have to fix him completely. I have two different sprite sheets for him, right now. I couldn't figure out the tempAnimate command
There is no tempAnimate command
There's animate and temporaryAnimatedSprite and specificTemporarySprite (I think - don't use that one ever) and maybe one or two others I can't remember off the top of my head.,
You can use any sheet you want for TAS
sorry, I misspoke. The TemporaryAnimatedSprite
It is a bit complicated but I can help you with it if you want
I've actually used it twice in that screenshot I sent before
that would be lovely! Can I hit you up tomorrow or Tuesday? My cats are telling me it's bedtime
Yup sure just ping me. You can ask in my thread if you want to avoid cross-conversations but no pressure. https://discord.com/channels/137344473976799233/1256552123202539561
Last minute success! Have a great night!
How thorough does schedule testing need to be? Asking for a friend with 12 NPC schedules to test 
As thorough as you want to be
Personally, I do a quick check using cjb cheats to change time to later in the day (makes npcs speed through their schedules, though there is some risk in them walking off map sometimes), and use debug mode to mouse over npc landing spots in SVE when checking for sve compat to check if there's any objects there. I usually just check a couple of the schedules (default ones, common ones, and highly specialized ones) and don't really bother with only slightly modified schedules from the default/commons
You could make a sheet with specific times and locations. Start the day, then teleport to all the listed locations at the time intervals to make sure the NPCs are in their spots
this mod is helpful for saving you time and avoiding weirdness from actually skipping over time https://www.nexusmods.com/stardewvalley/mods/28198
I second this
Has anyone ever tried to give a custom merchant the option to purchase pets from them?
(I'll likely need Shop Tile Framework, if it is possible)
But as far as I can tell, custom pets are usually made available from Marnie.
Oooh yeah 10k!
Hello guy, i seek code mod HappyHomeDesigner i found code this line
https://github.com/tlitookilakin/HappyHomeDesigner/blob/0bb3e56c28f25a7485f9cf09e54a2af8f320dbe9/Menus/VariantPage.cs#L63
- var fcount = custom_tabs != null ? filter_count - 2 : custom_tabs.Count + 1;
"custom_tabs != null ?"โ i think this code is not correct
should be " custom_tabs == null ?"โ
that right?
@gaunt orbit
huh, is you ๐ ๐
Pssst, would you like to be cheeto? You qualify!
Marnie is much more suited to Marlon than Lewis
Looks like I dragged my heels too long on writing mine. Not that it matters, Two Cakes and all that!
hey @rigid oriole, i saw your work on the Modding:Audio page recently and i think it looks really good so far 
(i wrote up the original page haha)
finally having a lot of these descriptions in is really nice! thanks for working on it ^.^
does anyone how to change the sell value of stuff? i changed the sell value for dodo eggs and dodos but they aren't changing, however, when i try to change dodo mayonnaise it works.
also, how can i make an animal lay a new egg haha i tried to make a sprite for it but don't know what to put in the code so i just copied the egg files but isn't working when pasting then changing the asset file
Congrats! 
I haven't decided yet >.<
No worries, take your time! 
Whenever you change item data (Data/Objects) make sure you spawn a new copy of the item
what do you mean by spawn a new copy of the item? like in game?
yeah. items retain a lot of their properties in save files
This is non-released WIP compat code for a spacecore feature. It's not in the actual release mod, and it's probably going to be removed before release due to the complexity and nicheness.
What do you need with the hhd code? If you need to know what it actually looks like, I would recommend going back to the last version bump commit, as that will be in line with the current release.
If you're trying to figure out android compatibility, the most likely broken thing would be the inventory menu transpiler. The code is different on android and I don't have access to android binaries, so I can't write compatible transpilers for it.
Most of the menu code should work on android. the key modifiers for favoriting wouldn't work without a controller, but I'm not sure there's anything that can be done about that.
Oh ok, thanks sir
yes im try fix bug for android version
I've been sitting here trying to debug these issues, wondering why the code logic is so weird โ and on top of that, it doesn't even work on PC.
Yeah the dev version is still in the oven. I've been too busy to clean it up. If I have time this week I want to get rid of the custom tab stuff and finish the blueprints thing
If you have questions about the code, lmk. Most of the menu stuff should be reasonably well-documented, but I know the harmony stuff is less so
ah ok thanks sir
I'm having trouble with retaining what I'm learning still. I wanted to try adding entries to ProducedItems in fish ponds for three fish, and I thought I was doing it right by adding new entries, but it hasn't worked. Can someone tell me what I did wrong?
https://smapi.io/json/none/090b4e8b1deb43bb9802925ae27d1b93
(popping in to mention - wren uses she/her pronouns, so sir isn't really the correct way to refer to her here. I suggest not using sir/madam to avoid any potential mixups or confusion)
sorry
It's a list of models, so each entry should be one model, assuming you're only adding or completely replacing entire fish pond fish entries.
If you're only trying to add produced items to a specific entry, you need to use TargetFields instead
it's okay, I know you were just trying to be respectful but "sir" and such aren't universal, and since this is an informal server you can feel free to just call people by their names instead 
Yeah, I'm only adding. No replacements. So, I have some examples of target fields, but for that, I'm having trouble remembering exactly what I should put in there. Do I just add "TargetField": ["Squid"], for example? Or am I not understanding what fields are?
That's mostly correct. You'd want
["Squid", "ProducedItems"]
Hello, would someone be willing to showcase my mod for me? I finally finished and published it!! 
"The new farmer isn't the only one looking for love in Stardew Valley.
Star Crossed introduces rival marriages for 6 couples. Each pair has their own unique events, dialogue, engagement, and custom wedding. After marriage, couples will move in and continue to interact together during their regular schedules, as well as during festivals."
ya know what? why not!
i got time
Thank you!
Haha, I hope you love their love stories as much as I loved writing them 
@karmic gust You leveled up to Cowpoke. You can now speak in our voice channels and share images in all channels!
Gotcha. So, if I understood the assignment, would either of these be correct?
https://smapi.io/json/none/b6e62a43be3a4589adcf9ff9fa3d25dd
https://smapi.io/json/none/93e7b9e1a17b484a902d26d4457221e4
so quick question? will this be safe to unistall? i do several runs and imma use my test profile to do this
also also? quick question? is it ok to use a free font for making a font settings pack?
Before the engagement scene should be fine, after that there are map changes that would likely bug out
oh cool! it's not gonna mess with recolors right?
Ooo, congratulations on the release! 
Everything uses vanilla assets so should be good!
You should promote it over in #modded-stardew too, so mod users see it too before it goes to showcase!
Thank you!! I was so nervous publishing lol
Hehehe I relate to that so much
Oh good idea, ty!
Yes that's fine!
HALEYSHANE IS REAL LETS GOOOOOO
They're my favorite grumps 
I usually use dafont or google fonts, yeah
Morning. Quill!
yay!
imma look for dafont too
i want a script/curly font
tho idk how hard that might be to translate
like to see in game i mean
Morning Atra! 
Not quite. What you need is something like this:
{
"TargetFields": ["Squid", "ProducedItems"],
"Entries": {
"MyId": {
"Id": "MyId",
"ItemId": "(O)812"
}
}
}
on a scale of 1 to 10 how hard is this to read? can yall see this font ok?
I can understand it okay but it does take a decent amount of effort to parse
readable to me, but I use cursive to write
i'm used to it
for someone used to print I imagine it would be harder
I see lines sorry
The characters are all fairly similar which requires more concentration to read and makes it unable to be understood at a glance
imma keep lookin!
i love the fancy font but i wanna verify others can see it
also also? anyone know how to make a character file? for fonts?
i googled it but i got oc advice instead
I mean I use cursive too, it's not about the curly letters, it's more just that the homogeneity of the character shape makes it more difficult to differentiate characters.
When I write cursive there's quirks to the letters that make them less uniform and more easily readable
what about this font? this font more readable than the 1st one?
Apologies for continuous dumb questions, but for the "MyID": and "ID" : "MyID", I'd have for example "Campaigner.Thing": and "Squid" : "Campaigner.Thing"? Or am I not understanding that part correctly?
It can be anything as long as its the exact same for both, and different from any other Id in the produced items for squid
that's true, I think I'm just highly accustomed to reading "teacher cursive", which lowkey looks so much like this
So instead of "Squid" : "Campaigner.Thing", it'd be "Campaigner.Thing" : "Campaigner.Thing"?
Yes
Gotcha. It's kind of confusing, but here's hoping I'm understanding now
I know it's weird that's just how list editing works with cp
