#making-mods-general
1 messages · Page 256 of 1
if you want to do randomized dialogue for years y1 and y2 alternate with eachother, and you can add the random token thing for it with i18n so what is said can be varied
if you put tulip, sunflower and honey into 3 wax stations and then pick up tulip soap, also the rest of the stuff you pick up turns into tulip soaps. but not always
Oh? Is this true?
Do a Y1 and Y2 placement and they will alternate and if you want a bigger dialog pool, do the random token in the i18n thing, yeha
I think festival positions is what breaks if you set _y3, not dialogue? I could be mistaken though
well i was asking, as im not 100% sure, but to me it seems like the same problem as like, translating your mail flags
is the totalMoneyGifted Player stat for shops?
i dont think any modded NPC without a y[x] variant will be loaded at all if they dont have one with the same key
totalMoneyGifted is multiplayer / ledger book IIRC
Ah ok. Am I best not including any internal names at all in i18n?
To clarify what I meant by random dialogue token thing bc im bad at words:
"QiNutRoom_Mon": "{{i18n:Aos.QiWalnutRoomMonDialogue_{{random:1,2}}|QiPlayerTitle= {{QiPlayerTitle}}}}",
(specifically the _{{random:1,2}}) where, in the i18n, the token would be "Aos.QiWalnutRoomMonDialogue_1" and then "Aos.QiWalnutRoomDialogueMon_2" (and you can have like... as many of those as you want really)
Gifting =/= spending
they are not user facing, so yes, dont i18n them
and you tested with fresh machines?
What would the the player stat for shops then? I don't think I can make a custom one
You can make a custom one with CP
I spent an unfortunate amount of time wondering why everyone vanished on y3 on my SVE patch (which does not use Y3, it does something else and I didn't remember to double check how it worked before testing)
^
if the stat doesnt exist then it creates one
If you use a stat that doesn't exist when incrementing, it makes it
oh
This is my conditions entry and it isnt working
"Conditions": "PLAYER_STAT Current {{ModId}}_Unlock 500"
its Condition not Conditions
I haven't been able to replicate this error just now and I thought I fixed it but one mod user reported it happening to them so I assume it's still there
{
"Action": "EditMap",
"Condition": "PLAYER_STAT Current {{ModId}}_Unlock 500",
"Target": "Maps/Woods",
"FromFile": "assets/entry.tmx",
"ToArea": {
"X": 7,
"Y": 0,
"Width": 4,
"Height": 4
},
"PatchMode": "ReplaceByLayer"
}
(Partial)
what mod are you using to have Condition in a CP edit?
I was told I could. then call the GSQ for PLAYER_STAT as a Condition?
I will change it to a when
Yeah, it was gonna depend on what you were using it for if it's a Condition or a When
GSQ don't work in when unless using a specific mod
You'll need to run a Query to use it in a When, IIRC
i was answering to Person, it's not as simple as changing it to when
there is no player stat token however
noted, removed my comment
my approach would be to have a trigger setting a flag once the GSQ condition is met
Of course it isnt...
but it's quite advanced CP
What kind of patch are you trying to do?
maybe you should learn the basics first
You mentioned you wanted to set a mailflag or GSQ, but not what kind of patch it was for
What happens if you specify both _y1 and _y2 though, when it rolls around to year three? Will the game bounce back and forth?
"The basics" is relative. I am good in maps, yet not Conditions/When entries.
Or will it be stuck on _y2 forever?
Is this a map edit, or an EditData that you're attempting to happen conditionally?
It repeats
It is a shop, I want it so when you spend a certain amount at the shop it will open a passage with an EditMap
y2 repeats forever?
No I mean the sequence repeats, sorry. It's like how festivals do in game, they go y1, y2, y1, y2
Oh good!
That makes things simpler
Though flower dance is apparently special in some way
It has Y1 and Y2 maps/schedules/etc as well, but there's something about spouse dialog that's odd about it I think?
Yeah :(. I got a bug report today for it
okay, so the next step would be to Trigger Action based on your GSQ as a Condition, then.
So a trigger action in a condition for my GSQ?
It's possible we added an extra step doing it this way, but I at least know this will work. >_>
If you scroll down under Triggers, you'll see a Leo example
Your "Condition" field would be your GSQ instead of the PLAYER_HAS_MAIL
So I would need to make a new trigger action?
Yeah.
Fun.
Trigger actions aren't hard.
did you get to the bottom of this? from the sound of things you've updated the mod in-place from 1.5.6->1.6.14. you can see the actual mod file structure on the nexus page with Files > Preview File Contents
in any case, there's only 1 set of assets, and all assets are loaded via CP in a way that means anyone can target and edit them if they like
They look to be hard from the surface
Hi again. I have another theoretical question about possible mechanics. Can spouse/roommate rooms have a warp inside them utilized as a door on the wall, for example? (I’m not currently making a marriageable npc, I just want to know if it could be done.)
$action AddItem 300, trigger action expert
Does this means i should put "ObjectInternalName": "(O)bb.beesPlus_BFSoap", ? 😅 also I don't know how to target "OutputItem" field? I tried "TargetField": [ "(BC)10", "OutputRules","OutputItem" ], but I guess it's not as simple as that. Thanks a lot for the advice you have given me 
FlowerDance_Accept_Spouse <are you using this? Just out of curiosity.
The spouse doesn't path so much as slenderman teleport to the farm patio when you aren't looking
Yeah, I'm using that 🙂 It's just the line before the flower dance acceptance that is being weird. On year 3 married, and it won't show either Sebastian_spouse or Sebastian_spouse_y2
I don't think they use warps
I did -- it just unzipped wonky for some reason? cause I had cleared out the beta and then downloaded your most recent from nexus when you made it available. deleting and redownloading fixed it. But i also got the vintage interface out for LoC! your pixel details on those pages is wild. i dont know how you have so many different shades of the same color lol
So I think I need to do some CP trickery
it's normal to be a bit overwhelmed by new stuff and there's a learning curve. Remember to do step by step, do breaks, and focus on stuff you find easier between hard stuff. You don't have to do everything at once
no, you keep it as is, but move the i18n value "{0} Soap" into the ObjectInternalName field directly
This scared me a couple of times when testing schedules xD
ahh. Yeah not sure what's up there.
Would the action be the EditMap?
No worries, I have an idea for patching it that will absolutely, 100% work the first time with no issues 🙂
and look at CP docs/several mods doing stuff like what you want to do, so you can learn by example
Lol. They at least find their way back to the house though when done. Does that mean my idea isn’t possible though…?
as for targetfield you'd do ["(BC)10", "OutputRules", "Default", "OutputItem"]
oh that absolutely wasnt hand-sprited hahah, the page texture is from an old photo of a piece of craft paper on my hard drive from like a decade ago lol. all the PSDs are here:
https://github.com/b-b-blueberry/CooksAssistant/tree/master/Work
OutputRules can have multiple entries, in this case you need to tell it to "target the entry with the Id "Default" in OutputRules
i'd recommend just using an edit layer rather than manually recolouring every pixel of a hi-def image lol
Thank you so much! 
whew ok, well genius either way! im just glad i got it out
love all of your mods
i sort of followed the style of the vanilla CC bundles page for that, it uses some similar page texture overlay with high sharpening
I think i started out selecting pixels, got over it cause it was taking forever, then realized im dumb and could just select the cover pixels, invert selection and have all the page stuff highlighted way faster
I believe this is all you need for a mailflag that you can then use in your When condition for EditMap: https://smapi.io/json/content-patcher/678b4a9c631a4d6e9ef3839f5d6e1521
ah yeah there's like 5 colours in the actual palette and then a texture overlay that adds 63,535 more lol
thank you so much 😭 my brain was melting
No worries, working on these recolors of my mod were draining my sanity, so I needed a break xD
recolors can do that, can relate 100%
Person, again, don't let your projects overwhelm you, limit them for now while you learn
I got surgery in an hour so does that count as a break?
good luck! try not to think about modding too much. your medical license is more important
yes of course nothing is more resting than events like that!
No no, I am getting surgery. I am not DOING the surgery
you should consider doing your taxes next, it is likely as helpful in term of resting!
i had an idea for a cute lil garden sign (that would show the crop image on it) that worked like immersive scarecrows that could move in half tile increments for better placement -- and then realized its c# I think cause there was a .dll in the folder for immersive scarecrows :(
and yes -- get that medical license. you are smart you are tough and you can do this!
woops
get that surgery
you are BRAVE
lol
i believe in u
When I do it in a when condition it says it has trouble doing it as a tokenizeable string or it is looking for :at the end of the line
oh right thats fair, how did i forget that... when i have precise furniture lol
I dunno if that works on BC tho
ah no it'll be smol
But if u r ok with it lacking the sign features then just make it furniture ez
I think ill plan out some "rugs/blankets" that i can label as decor so they can be placed outside
I wanna go full animal crossing and put blankets everywhere
Right. Taxes
So uh, the when doesn't work/I cant figure out how to make it work
You're doing it like this? "When": {"HasFlag:{{ModId}}_AreaUnlock":true}
need to doublecheck the token for HasFlag but it's something along those lines.
I forgot it was a flag...
Oops.
It is giving me an error saying it needs a player now.
"When": {"HasFlag: currentPlayer {{ModId}}_AreaUnlock":true} I am taking a break so you can fix it if you want, but I need to get ready for surgery
(when doing codeblocks you can do ```json rather than just ``` and it will syntax highlight)
Not looking to discuss a specific mod. But do the mods we don't talk about here get DP points on nexus? They always seem to get put in the trending mods for me. Seems like easy DP to make one. Not that I am going to, just an observation.
like nsfw stuff?
Yup
i dont think nexus ban them from DP system?
its prob question for their discord server tho
(i mean i wouldnt be so sure that we're allowed to just passively discuss them like this either...)
Ok
making a mod just for big DP is a bit backwards anyways, it's not all that much money by NA standards 
if u r one of the rare ppl who make real money from DP then good for you
whats the threshold for 'real money'
whatever's a lot of money for you
True, I think I have just enough DP to get a copy of stardew if I wanted a 2nd one. Not a ton of money.
everyone's situations are different
though hm i guess i did assert some kind of "real money" threshold implicitly
you did so now you must be the one to decide the treshhold for the entire sdv community
no pressure
we're all going to judge the answer but no pressure
$3.5 USD per month \j
i deem that acceptable
That would be a lot of DP...
I definitely don't get that much. Maybe Casey does? lol
does pathos even make that much relative to time spent 
like if u somehow made a mod in 1hr that got hella popular for arcane reasons then u might be over the threshold
and so we see the fragile thread of morality start to waver. maybe i need a little a dp..
I appreciate the DP I get, but I definitely don't make mods because of them. I just think modding is fun. The idea of making a living wage off modding is crazy to me.
(Last time I calculated it, I think I was making around 5-10 cents per hour from all modding revenue sources.)
ur threshold would be like $1200 in a month
So not livable then 🤣
i feel like only foundational frameworks are going to receive enough DP to count as income, otherwise you may as well just redirect it to a charity and feel like you're spending your time for good reason
"relative to time spent" is why i said made a mod within 1hr
I'm putting all my dp to a new laptop since I have trouble justifying the cost otherwise.
roughly ~600,000 unique downloads required in that hour. good luck
Not quite yet. But I'm most of the way there. I should get there this summer.
Found this in Data/ExtraDialogue for Maru. Anyone know if this will work for any marriageable NPC, or if I need to overwrite the two defaults?
,
"Mines_PlayerKilled_Maru_NotSpouse": "...I found you unconscious in the mines. I was hunting for minerals and I almost stepped on your head!#$b#Be a little more careful next time, o
kay?$s",```
player killed maru....
Alright :/
Hi, I was wondering if someone could help me create a mod-showcase post for SproutSight 🙏 : #modded-stardew message
Worth a shot!
tbf, we calculate wage per hour assuming a 40 hour workweek, not a 168 hour work week. So pathos is actually earning a much more reasonable wage of 21-42 cents per hour
Yeah, it woudl be a relationship:married kinda thing
which is downright lavish!
Data\\ExtraDialogue:Mines_PlayerKilled_Spouse_PlayerMale or Data\\ExtraDialogue:Mines_PlayerKilled_Spouse_PlayerFemale
Yep. That's what I feared, but I hoped I was wrong
Ah well. Not too hard
Thanks chu
another violently gendered thing

iro when are u gonna make the gentle gendering mod that dehardcode all of these
one day I will do a solution-wide search for “male” and “female” and dehardcode the whole thing, just you wait
I need that mod last year
(my second farmer ever is an OC named Otzi, a genderless snow golem (kinda, the lore™️ is complicated) lmao)
(and another of my OC is going to be a non-binary human)
bro I hate when stardrop just decides to not load in mods, it randomly just decided its not going to see the mod I made today
oh but gnt covers things for farmers right
Oh by the way, @ivory plume , do you think it'd be too much to ask if somewhere on the CP docs for tokens it could make clearer that Dynamic Tokens use hashsets (I presume?) and so if you make a dynamic token that is a list, duplicate values will be deleted? someone in my thread and i were very confused for a bit bc they were trying to store RGBA values in a dynamic token and it wasnt working right because e.g. "255, 0, 100, 255" would become just "255, 0, 100" bc the 255 can only be added once, even though it was being added separately from a different token
these violent gendered parts are npc
I'm waiting
just ctrl F for male and replace all with like "undefined" or something. dont worry about all the "feundefined" as a result
Sure, I could make it more explicit on the tokens page that all tokens are sets (which informs a lot of the other Content Patcher design and philosophy).
I already made you one, don’t be greedy 
undefined and null, the two genders
we should use Float genders. I’m NaN
that would be much appreciated as long as it explains what being a "set" entails
i know it technically does already say like, "a token is a set of values" but ill be honest, i always just read it as another way of saying "a token is a list/collection/group of values" and not the actual mathematic definition of set
(and just tagging @marble verge since you were the one running into the issue, to let you know that its been brought up to Pathos already now)
pretty sure "set" holds the record for highest count of distinct dictionary definitions, and probably also the most space in the book
of course they’re distinct, it’s a set—
boo /lh
Maybe something like this in the introduction section?
Maybe change "can't have duplicate values" to "will remove extra duplicate values" for a laypersons understanding?
otherwise "can't have" might make someone think that if they try it'll break something
i know thats not technically accurate to how a set works, its not removing duplicates after the fact or anything, but i dont think most people looking at the token documentation are looking for a precise mathematical definition and just want to know how tokens work in practice
that'd also work imo
maybe "add" instead of "specify"
or "even if the same value is added twice"
since it might not be you doing it but another token
It might be confusing to talk about 'adding' or 'removing' in the general tokens introduction, before the concept of dynamic tokens is even mentioned. For example, what does it mean to 'remove' a value from a global token?
Maybe something like this?
In practical terms, that just means that they...
- can't have duplicate values (i.e. each distinct value will appear once in the set);
to me that does change it from "things will break" to "this will happen instead if u do it" so i would say that works too
so hm does this mean i ought to be making HashSet for my tokens 
i did kind of want them to be ordered
you can still order them if you want, some tokens already are like ChildNames
If you're using the basic API, Content Patcher will convert them into a set automatically. Content Patcher won't deliberately de-order them, but there's no guarantee the order will remain as-is if you perform operations on them (e.g. using {{Merge: x, y}}).
wait, what happens if you name both of your children the same thing
well you can't
oh ok
I think the game will rename one of them to make them unique?
game appends spaces
ive never looked at that part of the code 
assuming Utility.getAllCharacters returns the other Child at least
waves at you like an ant
Do you have any idea why an npc in a non-standard location in their spouse room would only stand facing up?
Are you still working on that? Well, Pathos is a good one to ask why it is not working as it should.
i switched to working on paintings in the meantime
Sucks, that it still is not working.
yeah it's weird
okay, well, after the childnames thing i was curious, and now i know that if your player name is a comma separated list with duplicate values, and you use the {{PlayerName}} token in a dynamic token, it will fuck up the name
same with FarmName
with a player name of "true, true" it becomes just "true" inside the Dynamic Token
not ever likely to come up with either playername or farmname anyway but fun to know
From what I can see, spouses always face up when first placed in their spouse room (except Sebastian) until their schedule/behavior moves them?
(tho i could see it potentially happening with farmname moreso. like, "Cool, Cool Farm" would just be "Cool")
I can tell you why it defaults to up.
direction: The direction the player should face when sitting. The possible values are down, left, right, up, or opposite. Any other value defaults to up. Per the wiki.
What I don't know is why your tile property does not work.
isnt it a Paths
Which tile property?
i also tried "down"
They are trying to get the spouse to stand in the spouse room in a custom location. The location works but the tile property does not
the wiki had it as lowercase
That seems incorrect; I see a direction tile property in the movie theater logic, but it's not used anywhere else.
(I'll correct the wiki.)
yeah, the path tile is, but not the property it seems
Does that mean there is no way to change the direction they face?
Not that I can see. The game assumes that the NPC will then move after they're spawned.
the only direction change i can see in spouse room is for Sebastian to look at his frog
hm
I've loaded seasonal tilesheets in and they work great. I'm struggling with how to make these recolour compatible?
Can you check marriageDuties?
if theyre loaded in, that is as far as you go for compatibility unless you draw the compat yourself
that IS marriageDuties
Ah. Huh, okay
else if (r.NextDouble() < 0.45)
{
Vector2 spot2 = Utility.PointToVector2(farmHouse.GetSpouseRoomSpot());
this.setTilePosition((int)spot2.X, (int)spot2.Y);
this.faceDirection(0);
this.setSpouseRoomMarriageDialogue();
if (base.name.Value == "Sebastian" && Game1.netWorldState.Value.hasWorldStateID("sebastianFrog"))
{
Point frog_spot = farmHouse.GetSpouseRoomCorner();
frog_spot.X += 2;
frog_spot.Y += 5;
this.setTilePosition(frog_spot);
this.faceDirection(2);
}
}
this is the only place SpouseRoomSpot is checked
I've made an earthy version of my tilesheet, how would i make sure this is loaded when the player has ER installed?
a conditional EditImage
or a conditional Load over top of the originals with a priority that is something other than default/Exclusive
Ah ok, and would I need to do that with all the seasonal versions?
Gotcha, thanks Button
(Wiki is updated.)
"numeric value (default down)" 
(Technically it's down rather than <samp>down</samp>, i.e. the numeric value for down.)
unrelated question, machine working effects are TASs right
Yep, I think they're tool-assisted speedruns under the hood.
But the spouses definitely face down in vanilla rooms. Why is his defaulting to up?
maybe he just really loves that axe /j XD
do you happen to know which method it is that initially creates that TAS? i need to patch the TAS creation part
I assume the NPC moves after they're spawned?
"HasFlag:currentPlayer":"{{ModId}}_AreaUnlock"}```
should fix it.
I don't know why it put a space in there after the " in the code block
yeah he seems to spawn in that location and then stands there for some odd amount of time before moving off to do something else
my npc faces up when she spawns in her spouse room, but (you activated my trap card) that's what i wanted her to do.
i don't remember if i checked this out before
actually wait 0 is down right?
i think 2 is down
oh 0 is up
Digging into the machine code, looks like it actually animates it manually in Object.updateWhenCurrentLocation; so it's not a temporary animated sprite under the hood.
i will never remember this
working effects technically include TAS, sounds and frame changes
neither do I, it's on my builder as a reference for a reason
i dont know what to believe about the working effects now
for me, it's a clock, and it's indexes. maybe that can help someone else
the bubbles emitting from the keg occasionally is a TAS
o-occasionally?
yes, it happens randomly
i think the part that fucks me up is that the 0 1 2 3 does not match npc walk cycle sprite order 
nor is it exactly opposite
some custom machines use frame animations, which actually swap out the machine's tile index
working effects is the only place that has data model version of TAS
which i have been stealing for stuf
unfortunately for me i thought DRUL is the true one...
Hey Pathos, while you're here, is it possible we could get AddNPCWarps in Content Patcher, similar to AddWarps, at some point? So we can not accidentally nuke all existing NPC Warps on the vanilla maps...
that was supposed to include
chu 🤝 ichor
but lol slowmode
so i had so many dum switches to convert the URDL cases
if it was like, ULDR
then i could just go ah its the "Facing"
anyway check in MachineDataUtility.PlayEffects and Object.playCustomMachineLoadEffects (though the former is hardcoded for fish smokers only)
do they have a Direction set in their Home in their CharacterData?
button wouldnt u want to patch all TAS ctors
Hey all! Anyone know of a good video tutorial on AT mods? Never made one with AT :)
Sure, I'll look into that for an upcoming version.
thats what my plan was but i didnt want a machine to create a TAS on top of itself that would then get moved when it shouldnt be
yeah it's down
unfortunately that was the only lead i could think of for the spouse room thing
TemporaryAnimatedSprite.CreateFromData
oooh that is only used by PlayEffects
the other one selph mentioned thoug does just make a TAS
but if its just the one that should be easy enough to transpile
or skip prefix
nothing else in vanilla uses this one bc all other TAS things are some kinda string arg
or just hardcoding
much hardcoding
i took a look at the specificTemporarySprite event command and immediately decided that patching every TAS constructor was the way to go instead
actually hmmm
oh no
you dont want to change TAS that came from non map things do you
like the crop ghost when u harvest things
how could u possibly tell then
which i just expected to need to play patch whack a mole with
i could transpile every TAS construction call that has a Vector2 constructor inside of it that doesnt have a ldfld
inside the Vector2 construction call space
can u patch TemporaryAnimatedSpriteList.Add
just simply iterate over ever single function in the StardewValley assembly
isnt that just like, List.Add
and check if __instance is current location's TemporarySprites
oh thats a whole ass class
yea
wouldnt that not help though
bc it 3would still be adding to the current locations temporary sprites even if it was from a crop or a machine right
ah yea broadcastSprites adds there sadness
for 1.7 i want TemporaryAnimatedSprite to implement IHaveModData pls
does the bigCraftable field on TemporaryAnimatedSprite always indicate that its like, from a machine
i dont think so
i want many things to implement IHaveModData, the funniest and therefore best interface name in the codebase
TemporaryAnimatedSprite.CreateFromData doesn't take SObject machine and it never gets set any other way
what in the world is that field for then
i think its for drawing a big craftable in a TAS
line 1611ish
i wonder if TemporaryAnimatedSprite is also a big ol partial in real source code
maybe ill just accept that some TAS's will be improperly placed that sounds like a fine solution to me
no one would even notice that the crop ghost is gone i bet
well, if you do nothing it'll be correct
bc it's based on the player's position
it was only concern if u aggressively patch every tas ctor
im assuming that uses attachedCharacter
that seems like it'd still mess up if i moved the actual TAS's position
localPosition ? this.Position : Game1.GlobalToLocal(Game1.viewport, this.attachedCharacter.Position + new Vector2((int)this.Position.X + xOffset, (int)this.Position.Y + yOffset))
hmm
do you think it'd be a good enough heuristic to just. every time a TAS is created, check if its position matches the Tile Coordinates of any character, object, or terrain feature on the map
and just not affect it if so
SMAPI is stating that the tilesheets don't exist when they definitely do. Any ideas why this is happening?
no ideas without a log
what happens if i stand on a TAS made on the map then 
My custom tilesheets for the recolours
unlucky.
the wizard smoke TAS is remade often
smapi.io is struggling a little, so log parser may take a few minutes to load currently.
i can check attachedCharacter too
and just apply the heurstic to objects and terrain features
which i think will not move
mostly
better than nothing
its better than patching every single TAS edge case
Log Info: SMAPI 4.1.10 with SDV 1.6.15 build 24356 on Microsoft Windows 11 Home, with 12 C# mods and 4 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
I have a very stange modding question, would it be easy or overly complicated to put the player back into the corner during the flower dance if they dont have a partner. Like it was in 1.5
Does anyone know if it is possible to create a C# mod that automatically enters a farm, using join with the Steam invitation code?
can you show a picture of your Assets/Tilesheets/Recolor folder?
Oh
Recolour vs Recolor
The classic British vs American modding error 😇
(i use colour but im not british... dont tell anyone)
But that's a crime 
if i ever make a game i cant wait to use Colour and Favourite everywhere to force every modder to conform
"colour" is prettier to me than "color" but i don't have any strong opinions about other intrusive us
Does anyone know if smapi has a command that connects to a farm in the coop, using the invitation code?
Also, add puzzles that require cultural knowledge and solution that only locals will understand.
this is literally the entire reason i switched to using colour. one day just decided it looks prettier and said "im gonna do that from now on" and have ever since. i like favourite a lot. indifferent to neighbour
sometimes i type theatre too but thats not for the same reason thats just bc im an idiot and can never remember which is the right spelling for the place i am currently in
Why can't you join multiplayer the normal way?
Because I'm creating a Custom Loader, which will automate everything, from the creation of the server, to the client, which will automate the mods, for those who create and for those who connect, including the automatic connection of the game.
I could even copy the code to the clipboard, but it would be cooler if it automated the connection too, right?
to me that sounds like it will need a custom solution. i believe the game has a debug command to connect via IP but i dont believe it works with steam invite codes
but i could be wrong
theres a wiki page for console commands
i dont think it's SMAPI per say take a look at CoopMenu?
it uses Program.sdk to do stuff looks like
Also, not sure the modding community will appreciate a mod that bypasses the need for each person to download the mods from nexus. And that sounds like what your mod will do. Sorry if I am wrong.
if it requires nexus premium to use nexus's API like stardrop does, then it's probably fine. otherwise it sounds like mod piracy to me
would you also be afoul of networking policies on nexusmod
that is a good point though, bc it cant do that, bc not every mod is guaranteed to have an update key
smapi needed special exempt for it
But when people create a server they send a modpack to each other
that is, largely, not how we do things in stardew
They are not suppose too.
i dunno if game's gonna like it if you try to send all of SVE over as bytes in mod messages 
bypassing the mod authors getting their DLs is not something this discord server supports
when ive used servers in the past ive either been given or created a nexus collection which i then downloaded from nexus
But you are correct people do that, we just don't help them.
for minecraft which runs a server the mods just go on the server right 
no
oh then mc server literally does send mods to clients?
also no
In fact, there is no way to automate downloads on the Nexus, because it is closed and requires a login.

every client downloads the modpack
ah is it like built-in version of nexus collections
basically yes
that isnt "no way" when you can have someone just sign in
^
The main objective of my client is to provide security to people by installing an anticheat and checking the client and server mods to avoid problems on the farm.
Downloading mods would be a plus if it were possible
all i can really offer re:anticheat is "good luck"
it may be possible, but this channel will not help you do it via other means than nexus's api
nor do i think a mod piracy enabling mod would be allowed to be posted here once it is finished, either
i feel like people just wouldnt join your game?
and yeah. there are many many ways someone can bypass a stardew anticheat
its not like sdv really lend itself to the mc server kinda MMO experiance
personally i think your idea isn't without merit as a mod manager, with the premise of being nexus collection but actually works good for sdv
also, as far as checking mods between players goes, two cakes is a thing but there is already a mod that does that
As a mod manager it's working fine
I have a fork of anticheat, in mine I implemented a few extra things, like completely blocking smapi, or a whitelist, where everything is blocked, except those allowed.
Why are people so obsessed with anti cheat in a client authoritative game
those can also be bypassed with just a different mod. any client can send fake data to the server
But you can encrypt the name of the mods
Create an online server that encrypts mod names in real time
Doesn't matter.
so what? i can download the mod you expect, figure out what the encryption should be, install my fake mod and just fake the encryption i send over
your server cannot 100% know what mods i have installed. my client might say i have ModA installed, but it can easily be ModB just telling the client to say its ModA
i dont really want to stop anyone from making anything, but i also think you should trust your friends more
But tell me one thing, a person with enough knowledge to develop software that will capture my encryption, rewrite the names of mods, will not enter a farm just to mess around... Those who enter games to mess around generally, in most cases, are people without knowledge.
or are people who downloaded a cheat mod from someone with the knowledge
it also takes about 2 seconds to change the name of a mod that SMAPI sees
And the purpose of anticheat is not just to block cheats, but to check if the person has installed all the necessary mods for the farm to work.
Because if I put a mod with new plants, new fruits, different maps, the game will be broken if the person doesn't put the mod there.
Mod list syncing isn't anti-cheat lol.
I'm honestly surprised SMAPI doesn't include it.
Cheating in stardew, is not really a thing. It is not a competitive game. You all share the same farm and if one player cheats (when they agreed to not) everyone is going to figure it out pretty quick. What they are saying is SMAPI mods are hard to prevent people that want to from cheating. If you have a way, I am sure no one is going to complain. As long as you are not by passing the current nexus download system.
The correct thing would be for smapi to only accept identical modpacks
thats not SMAPIs purview
Not really.
for starters, there are also a fuckton of mods that will work entirely client side that arent cheats
see: any recolour, portrait edit, etc
its not SMAPI's place to enforce things. its a mod loader
It is very difficult to check through this log of this mod
yea i think it's good if you want to release this but nice UI
(also, again, even if SMAPI did... its open source. someone can fork it and remove the mod list enforcement)
You can count on your fingers the number of people who know how to do this.
you mean like, most C# modders in this channel?
How many fingers do you think I have? Cause I got 10
Making a mod for Stardew is one thing, but editing the smapi is much more complicated.
It's literally not
its literally not. just download it and recompile it with the stuff you dont want commented out
i did it in like 5 minutes when tracking down a bug and was able to make a bunch of edits and recompiles to track it down
the repo has the sln
But my friend, I'm Brazilian, and when I go to play it's usually with people from Brazil, and here there's almost no one who knows how to make mods, there are few of us, there's no one who can edit smapi
but there would be people making forks of it for those people to download
To be fair, that is not something I could do. But I agree most c# modder probably could. If they want to make an anti-cheat mod. Let them try. It will either work or not. But please don't include copy of the mods in the download.
do you want to make mod that assumes most players are dum 
Copying the mods would be a lot of work, it's not worth it
Nope, especially not since the algorithm change 😛
copying the mods was really the only thing people were taking active issue with. everything else is just trying to emphasize that a true anticheat for stardew is impossible and any attempts to make one are easily bypassed. whether you think people will is one thing, but i wouldnt advertise security when it isnt there
As I said before, the purpose of my software is to make life easier for those who don't know how to extract a folder correctly in Winrar, and put it in the mods folder.
then it still sound like you are trying to do mod piracy on their behalf 
Your computer's antivirus doesn't provide perfect protection against all viruses, but it does block most of them. If it blocks 90% of cheaters, it already helps a lot, don't you think?
creating a virus that can get past a tried and true antivirus is a hell of a lot harder than making a cheat mod for stardew that can bypass any stardew anticheat
so no, i dont think they are comparable
no
a dinky bike lock is enough to stop many people from just taking your bike, but i wouldnt call it secure
What my software does is extract the zip that the person downloaded from the nexus, into a modpack folder, and start the game passing the custom folder as mod_path
My software won't download
why do you need to control the peer connect then
using peer connected event should be enough
https://stardewvalleywiki.com/Modding:Modder_Guide/APIs/Events#Multiplayer.PeerConnected
Doesn't Stardrop already unzip mods for you?
Then noone has a problem with it. I think they are just trying to save you a headache they think will come if you tell people it prevents cheating.
Because it makes it easier if the person has forgotten a mod
im saying that you don't need to control the actual peer connect action, only listen on the peer connected event (which tells you a new peer connected)
them wanting the connection thing wasnt bc they needed to know when to check, that was just bc they thought itd be nice to automate, iirc
afterwards you can send mod message
I wanted to make the connection automatic so that the person wouldn't have to go through the menus and paste the invitation code there, like the person wouldn't even know what the invitation code was, that was the idea.
I was able to send the invitation code to a websocket server, through the server, and I can already get it through my software, the only thing missing is a way to automatically connect using the code received from the websocket, and have Stardew start on the farm in coop.
you just need to find where the functionality of that button is and recreate it. but also, have you considered that they will still need to pick their farmer first
I think I'll do it using the clipboard, it's less work.
do you want to host this server 
like, yourself
unless there is thing in steamapi for it
There are 2 people, A= the server, B = the client.
A - Start the farm on host - It has a mod server, which captures the invitation code and sends it to the websocket
B- It has client software, which checks online servers, on websocket And get the invitation code there
I managed to do all this
(i would also like to re-iterate chu's point from earlier that you do need permission from nexus to post this mod there, if you planned on it.)
yea that is why i was ask if this was separate server
This mod will not be posted on the nexus, it is part of my software
ok sure u good there 
If I had more knowledge, I would make a mod with a menu on the game's home screen, where people could leave their farms online
And thus get public invitation code
This would be cool to post on nexus
?
Server Lists Mod
any mod that makes any internet connection whatsoever must justify itself to Nexus staff, per its rules
whether every mod that does actually asks permission is one thing, but that is what their rules say
and its ONLY allowed in cases where such connectivity is required for the mod to fulfill its purpose
"Files (especially executables) that connect to the internet to download or send information and/or files are prohibited unless where it is crucial for the functioning of the mod/utility. Please note that "auto update" functionality does not qualify as crucial and that we reserve the right to moderate and/or remove any files/tools/utilities/mods that communicate with the internet. If your tool's/app's functionality depends on the ability to send and receive information/files, please contact staff or send an email to support@nexusmods.com laying out your reasoning and providing the source code for your tool/app."
Did they give permission for discord rich presence?
not a clue
Discord rich presence doesn't connect to the internet.
It connects to another local process.
i did think a within game mod loader for sdv would be cool
sadly not all that practical besides literally make your own smapi lol
ive also thought about it being cool but you'd miss out on some very important SMAPI events
(For the record, SMAPI does have explicit permission from Nexus staff for its Internet-connected features like update alerts.)
But without smapi there wouldn't even be a mod
@pine elbow You leveled up to Cowpoke. You can now speak in our voice channels and share images in all channels!

there are always xnb mods
you can use smapi offline
Very complicated to pack xnb
far from "wouldnt even be a mod" though.
also there are tools for it
xnb mods is how SDV modding used to be
Hello!! I am an amateur when it comes to modding and need to add the "CanSocialize" and "SocialTab" commands to a character mod. Does anyone know which file I am supposed to put that information in?
The smapi for android was not put on the nexus, right?
packing xnb is as easy as unpacking it, people have been doing it for years
it's 1 button
Correct. It is on github.
There are still few compatible mods
find where Data/Characters is being edited probably
assuming this is editing an existing mod for personal use
Correct, it is a hit or miss thing. We tell people with android smapi to download and try it. It will work or it wont. And we refer them to the android smapi discord for help.
Yes it is. I made some edits and now I can talk to the character but can't give gifts and they aren't in the social tab 😅 my friend who has an unedited version of the mod can still do all of those things though, so I def just messed up somewhere and thought those two commands would be the easiest way to solve it
What would be the best way to figure out where that info is being edited? I only have experience with coding dialogue so idk where the other information is typically found
mod authors can organize their mod in any way they want; your best bet is do a file system search for that string in the mod's directory (idk how to do that on windows)
Ok! search for the characters string or the two commands I want to add?
search for "Data/Characters", which is where the NPC's disposition data (including their socializability) is written
Okay!
They have a file called "Disposition" - I assume that's probably my best bet of where to write the code? "Data/Characters" yielded no results
About 11 months I think?
that is slightly after 1.6's release date, hmm
well it's still possible they used the old 1.5 method
not unlikely its still relying on CP's auto migration
but you can't make antisocial NPCs in 1.5 with CP alone right
on windows you'd probably open the mods folder in explorer, type bash into the address bar, then use something like grep -r --include=*.json mycoolsearchtermhere, or just open sublime/notepad++ and search with ctrl+shift+F
i dont think 1.5 had the socialtab thing either but i could be wrong
i forget if bash is preinstalled so im not sure which someone's more likely to have installed
i'm pretty sure 1.5 still needed NPC Exclusions or Antisocial NPCs
(perfect, I love Windows solution where you just use Linux commands instead)
anyway yeah if it's using Data/NPCDispositions and/or NPC Exclusions then that's beyond my knowledge
I love drawing (I don't)
No, everyone used antisocial npcs mod iirc
There was a whole cluster of frameworks
That helped out with basic npc stuff that’s now just CP
I messed around with some things and was able to figure out the problem! Thanks everyone for trying to assist 🫡 I really appreciate it
did you put these in Metadata
We've had PowerShell for many years now...
nope, all hardcoded goodness
if u put them in Metadata then potential building skins support 
Can you plant anything in you hydroponics? Like modded crops too? Or just certain crops. I am excited for your mod.
cant wait to plant cactus in there
all crops except for ancient fruit (it's a bunch of garden pots in disguise)
I've banned bushes for now
That's fine, custom bush work different then normal crops anyway.
No cactus for me as they are bushes in my game.
So if I have a garden pot ancient fruit mod will it transfer over? Not that I need it too, just wondering.
it should
Cool the mod I use for pots actually allows that, never used them for that. but I know it was in the configs.
Is it better to postfix one class's function and include checks for the subclasses in that postfix, or make a different postfix for each subclass?
the subclasses' overrides may not necessarily call the parent version
oh so when i put a post fix on a parent, the children might not get it?
if they don't call base then nope
oh ok nice seems like what i thought was me being dumb was actually the right thing to do lol
hm I really should have committed before doing all of these refactoring changes...
sure, but powershell doesn't have grep (at least by default)
quick question, but i've updated an old mod of mine and it seems that
ModMessageReceivedEventArgs.FromPlayerID is giving me an invalid player ID
So if i do Farmer farmer = Game1.GetPlayer(FromPlayerID )
farmer is null.
Is that something that deprecated now or what could be causing that issue?
are there mods adding fake farmers present? (like Farmtronics or other things)
though I would expect them to have at least been present in Game1.otherFarmers which Game1.GetPlayer() does read
negetive im testing my mod practically in isolation it only has GenericModConfigMenu and CheatsMenu as additional mods for testing
Is it possible to have water indoors to fish in?
is the submarine technically indoors or outdoors?
yeah it's indoors
sure it's possible, it's done by map properties
it is possible, there's a bunch of farm cave mods with indoor water pools
Brilliant
Would that go in the map properties within Tiled?
within or via CP, up to you
I’ve heard people talk about getting nice mod ID numbers before or being disappointed at the number they got. What is a 'nice number'?
if you'd use your mod ID as a volume number on your TV it's a nice number
to me a nice number is one i can easily memorize so i can search for when its posted or talked about
Is it dependent on the total number of mods in succession?
Yes. Maps need an indoorWater property, but then you can have water tiles.
Hmm my client is laggy as heck I thought my internet was back but like 20 messages loaded after I sent that
(Also, the Sewer and the Submarine are hard-coded to have water. I presume those were done before the map property was added, I guess?)
It's just based on how many mod pages have been made (including unpublished). So if I make one and then you make one immediately after me you'd get the number after mine.
I personally do not pay any attention to mod page number at all. The only one I could tell you any mod has is SBV and that's only because Selph's message telling me that is right there lol
Do page numbers get recycled?
no
@ivory plume Hello! sorry to ping but i was wondering if you knew what was causing this issue?
So when i join my Partners save i can see everything im suppose to see on the Map and Mini Map for the SVE version of the game.
But my Partner Cannot see the same on both map and mini map?
Darker map is his view and lighter map is mine (Its spring in one and summer in the other)
!mh
For help with modding issues, please ask in #1272025932932055121! When asking for assistance there, sharing an error log will help others identify your issue (see https://smapi.io/log for instructions).
unless this is a mod you're making
Oh sorry, when I was checking his posts it said something about pinging him here
If a buff duration is listed as 0 does that just mean there isn't a buff applied or that it lasts the rest of the day
Could some one please some one point me in the direction of how to lear/guide/wiki on how to .TMX? I have the motivation/need to learn how for a small edit that will likely lead to suffering and a larger project. thanks!
There is the maps page of the official wiki which is MUCH more of a step-by-step guide than most of the official wiki pages are and can get you a very long way just by careful reading of it https://stardewvalleywiki.com/Modding:Maps
There are also tutorials on the modding wiki which are still pretty good as far as the mapmaking with Tiled part goes (though they are outdated when it comes to how to get the map in game). I tend to just go to the modding wiki "All Pages" page and then Ctrl+F for "map" https://stardewmodding.wiki.gg/wiki/Special:AllPages
You are the best thank you!
You're welcome! You can also learn quite a lot from examining vanilla maps. Make sure you use a copy of a vanilla map as your starting point instead of making a new map from scratch!
I am starting very small! my end goal changing out a shed an existing mod as a personal edit. and if that's too much I'll have to work up to it.
After some poking around I think I actually need to learn tokens first. much to learn
Since you probably mean Content Patcher tokens rather than tokenisable strings, here's the CP page for them :) https://github.com/Pathoschild/StardewMods/blob/develop/ContentPatcher/docs/author-guide/tokens.md
Tokenisable strings are a game thing and if you needed to learn those I'd send you the wiki page for them but they're less common than CP tokens.
okay chaps so i've managed to get nvm etc all sorted and obtain FS, but when i try to run the code it just eats my png and doesn't put anything in the output folder so i'm likely doing something wrong. Seems to say the conversion type is undefined?
What is nvm?
squints at chicken scratching something to do with node package manager. Can't exactly remember what
ah, node version manager
Why are you using that to make a fashion sense pack?
i dunno. I was told in the "have these things to make this work" section of the page to install it
Can you send me a link to that page?
please don't tell me the lovely people here told me to go get myself a nice virus
Oh I see, you're trying to run a converter
Have you just got the one hairstyle so far?
yep
Then it'd be much easier for you to just make your FS pack manually
...i'm not a coder. But okay 
Don't worry there's no coding involved!
wait, don't you have to write the jsons yourself
it sure feels like it 🥲
It's just like putting values into a form, only you put the bits of the form in too
Although since the FS docs include examples, you mostly won't even have to put the form in. You can just copy the example that's there and then adjust the values to what you need.
huh okay
Just follow the page from top to bottom and it should guide you through the whole process https://github.com/Floogen/FashionSense/wiki/Creating-a-Hairstyle-Content-Pack
Anything where you can't figure out what it's telling you to do, you can ask me :)
sweet thanks man!
um, has the stardew valley wiki been taken over by hackers
because the content pack link does not lead to the stardew wiki
No, it's not supposed to
It's instructions for how to make a content pack for Fashion Sense which is a framework mod. Information for how to use it doesn't belong on the official wiki.
huh, well this appears for me
Oh the one on the FS page? Sorry yeah that is trying to link to the official wiki but like Button said it's linking to the old one.
Go to the link that Button shared instead.
ahh
hum, so, i've successfully managed to create it, and it says it's loaded and all, but it's not appearing in any of the hairstyles....
Do you know how to use Fashion Sense? (Sorry if that is a stupid question)
I'm just wondering if maybe you're not using the mirror to look at your fashion sense options and are instead looking at the character creator
oh nope i've never used it before lmao i was wondering what that mirror thing was
Ok glad I asked then lol
Yes the mirror is how you access items added by fashion sense packs
noice 👍 okay whew that's good
I can't seem to get the dialogue to work for some reason. Am I missing something?
did you actually load your dialogue first
i need to do it at the top?
edits only apply to an asset that something loads
If you're following the NPC tutorial on the modding wiki it should explain about loading a blank .json into your dialogue, schedule, marriage dialogue, and schedule strings assets before you edit them.
Also just in case this isn't intentional, is your NPC actually called {{ModID}}_NPC?
I ended up hopping over to modding wiki rutorial after following the valley wiki Full NPC modding example, so ig I ended up skipping the blank initialization.
Yes the NPC is called that. I'm using it to test some stuff.
I did the blank thingy and created a new save and the schedule works now, but the conversation does not pop up.
which is kind of hilarious because I was fine with broken schedule rn
Have you given your NPC gift tastes?
.....no
Try doing that. You can just copy and paste another NPC's actual tastes for now, the important thing is that your NPC has an entry in Data/NPCGiftTastes.
NPCs have a sort of minimum threshold of seemingly unnecessary parts that need to exist before they will start working.
It worked!
Someone should really add it in the wiki "We know you want to see the NPC right away, but you need to have <X> stuff at minimum for the NPC to NPC."
Because I loaded the mod right after adding the portrait/character, and that somehow broke the schedule.
im pretty sure it's already in there
Hmm. I guess my ability to ignore vital information is still great.
Also quick question. I understand the When key is used for conditionals, but how would I use it to load an entry only when a specific mod is loaded (e.g. use a.png when mod x is loaded. use b.png when x is not loaded)
You’d use a HasMod condition. If you’re unsure about how to do that, I’d recommend checking Content Patcher’s docs.
@rancid temple Hello, would you be willing to help me with some SMAPI code fixes please?
can't believe I ignored the file that's literally called "conditions-api" that was 3 files below the author-guide file I was looking at.
It was simply hiding in plain sight. 
That page is for people making C# mods which it doesn't look like you're doing. You will want the tokens page instead.
Yeah. It has a link to tokens page in the overview ( I would have to get to it regardless since conditions-api examples only has 4 tokens).
That said, the original plan *was* to make a C# mod.
Well, I guess that page will be helpful when you do!
Unless you were planning to make an NPC with C# and people convinced you to use CP instead lol
If I want to patch a function with C#, do I need to replicate the entire function with my changes?
I actually convinced myself kek. Most tutorials/resources are made for json, so I decided to go that route till I can properly make NPCs. Once that is done, I plan to break the game with Harmony use C#, if necessary.
Good plan. No point reinventing the content wheel doing stuff with C# that you can easily do with CP unless the point is learning C# (which is what I'm doing lol because I already know how to do stuff with CP but am now trying to learn C#).
Also I managed to make resources not load when a mod is not there, but I can't seem to find an equivalent to make a resource not load when the mod is there. I basically want to load portrait A normally, but if mod X is loaded, I want to load portrait B.
I don't want to use config.json unless it's the only option available.
{
"Action": "Load",
"Target": "Portraits/NPCPortrait",
"FromFile": "assets/portrait1.png",
},
{
"Action": "Load",
"Target": "Portraits/NPCPortrait",
"FromFile": "assets/portrait2.png",
"When": {
"HasMod": "Abagaianye.OneCoolMod"
}
}
I think you'll need to use Load priorities to make sure those dont butt heads as well?
Tried that. SMAPI blocks both.
Alternatively, dynamic tokens.
Guess I do have to recreate the entire function if I patch it with SMAPI.
You can also do negatives like "HasMod | contains=Mod.Id": false (can someone correct my syntax)
Imma try that
no need to set up a dynamic token
I'll try both
Abagainye's method would work if you had Load priorities set in the priority field
Priorities, checking for a mod not existing, and dynamic tokens are all possible.
I'm doing my best to avoid the fact that I have homework to finish.
The check for a mod not being present is probably? most performant.
Actually, couldn’t you just do an EditImage if a specific mod is installed, too?
this one works.
Awesome!
Yeah you can but I didn't suggest that one because it's least performant lol
I guess it was remiss of me not to even bring it up though
Ha, fair enough. Does it actually make a noticeable difference, though?
Depends how many mods a person has, I guess. I know it's not as bad as EditMap but I think it's one of those things where if you can find a straightforward way around it you might as well. I don't do any of the performance benchmarking stuff myself but I try to listen to those who do (try being the operative word, so sometimes I misremember or misunderstand lol)
DynamicTokens also work. I had to create a ConfigSchema so that I could use some condition in When, where I checked for NOT when I wanted to load something when I didn't load a mod.
You don't need a config to do the dynamic token approach.
Far longer than using 'contains' currently, but this could be useful when checking multiple mods (since I could just check at the top and store them in variables).
Because you can do that same "When" check in your dynamic token block
Yeah, but I want the value returned from dynamic token to be used in another when block.
top is using config + dynamic
bot is using dynamic (probably the wrong way to use it I'm assuming)
If you want to check for the presence of multiple mods and do the same thing if any of them are present you can do this
"When": {
"HasMod": "Abagaianye.OneCoolMod, Abagaianye.OneCoolModTwo"
}
Or if you want to check that none of the specified mods are present
"When": {
"HasMod |contains=Abagaianye.OneCoolMod, Abagaianye.OneCoolModTwo": "false"
}
If you specifically want to create your own tokens and then check those for something, you can still do that with just dynamic tokens by setting the value of the first token in one block and then using that in the "When" field for the second dynamic token block like this
"DynamicTokens": [
{
"Name": "CoolModCheck",
"Value": "false"
},
{
"Name": "CoolModCheck",
"Value": "true",
"When": {
"HasMod": "Abagaianye.OneCoolMod"
}
},
{
"Name": "SomeOtherCheck",
"Value": "This is a value",
"When": {
"CoolModCheck": "true"
}
}
],
Or I think you could even use HasMod inside the value of the first token, but I haven't actually checked this works so caveat emptor. I'd test it before writing it here but I'm playing RoadCraft and my PC will explode if I try starting Stardew at the same time lol. So instead I bravely open myself up to ridicule and public humiliation if it turns out I missed something in my logic that would make this not possible xD
"DynamicTokens": [
{
"Name": "CoolModCheck",
"Value": "{{HasMod: Abagaianye.OneCoolMod}}" // will return true if OneCoolMod is present, false otherwise
},
{
"Name": "SomeOtherCheck",
"Value": "This is a value",
"When": {
"CoolModCheck": "true"
}
}
],
Welp, leaving aside my ability to create content for multiple different mods (whether loaded separately or together), this was a very helpful conversation.
Thanks y'all.
Is there a good list of item category IDs, for gift taste preferences? I already have one for item ids
not sure if it's comprehensive, but https://stardewvalleywiki.com/Modding:Items#Categories
you can also use context tags in gift tastes now
Thanks, Esca! What are context tags, @brittle pasture ?
Nice. I llike learning new things
were you looking for help making a mod?
Iro being desperate to help people
I had a thought
What if if i do do the other rarity versions if cards whst if i make it where you CAN collect them all but the ones you “donate” to the card collector are the legendary rarity ones
Hmmm
What if u just give them quality then
The collector is unlockable bundle that is restricted to iridium star card
Hey chu, I had a question for you as the translations expert person. I'm getting a couple of translation releases for my mod now. Should I update my content.json in any way to support them, or will they work automatically by just dropping their json files into the i18n folder? (I'm assuming they have to rename them to default.json as it is, but I could be wrong)
If your mod is already set up with i18n, all someone needs to do to use a translation for it is to download the translation file (e.g., pt.json) and put it in your mod's i18n folder. You don't have to do anything and they should not be renamed to default.json.
Good!
I just wanted to make sure that they didn't need anything further from me 🙂
Translators are amazing people. Some of my favorite interactions on Nexus
Some people might offer you their translation to upload with the mod itself and if you took them up on that you'd just put it in the i18n folder and publish an updated version of your mod so when someone downloads your mod it already has the translation there ready to go.
Nice. I think I prefer having them as separate mods, so that any translation errors get reported to the people who can actually do something about it xD
But that's great to know
Totally fair, that's just me covering the bases so you know how it works in either case.
Thanks so much Abagaianye!
You will still get translation errors reported to your mod, by the way. Even if they are separate mods.
Users are great like that lol
But hopefully fewer will go to you!
And there's still advantages to separate releases, imo. One, you can easily let your translators earn DP for their work without having to worry about splitting up your own DP earnings. Two, you don't have to stress about releasing incomplete translations if you add more content and can't get hold of the person who did the OG translation.
hi! i would like to ask what I could do for this mod that I am editing (basically translating, had approval from the mod owner), I keep getting this error so I would like some help.
SMAPI Log: https://smapi.io/log/20842ca3269b4821a51936140d171fd5
Log Info: SMAPI 4.1.10 with SDV 1.6.15 build 24356 on Microsoft Windows 11 Home Single Language, with 3 C# mods and 1 content packs.
It's saying that the spring schedule won't work because it is saying that Lee should go from a map called Lee_kt to a map called Lee_w but there are no warps between them. You should check the warps for all the maps.
But if you are just translating it, there shouldn't be anything in the schedule that you need to edit anyway because there's no dialogue or anything in it.
I'm sorry, it's my first time doing this so I'm a bit confused on what I should do. I have checked the mod schedule on json, and it seems fine.
It's not the schedule json that's broken. It's saying that either Lee can't leave the map called Lee_kt or they can't enter the map called Lee_w. So you should run around those maps in game and make sure you as a farmer can go between them.
That's the problem it seems, I don't see them in the map 😔
A User Interface Question, if I might!
So, I am prepping my Clothing/Armour buffs mod for release, and I realized, there is no visible way for people to see what all buffs are added by my mod. Technically, the things it adds mostly are not technically buffs in-program, just like +1 Attack or +1Luck or somesuch. Anyways, should I try to make them appear as buffs? If so, what is a good way that is done?
Or do you all think it is better maybe to have some small words somewhere on the screen?
You don't see the maps in the map?
No no, the character in the map
Yeah because he doesn't have a functional schedule. Don't try to find him right now. You need to find out what is wrong with the maps themselves. Or if this mod was working before you started translating it (I assume you're translating it to English?) and broke after you started, try undoing what you did.
I only changed the dialogue for it, but let me use the original file and check
Starting to make my npc mod aa
I used the Original, and this time it gave me Rain error 😂
Can you show me the error?
its the same, but instead of spring, its rain https://smapi.io/log/594f1d74bace492eba0336d49e5c9908
Log Info: SMAPI 4.1.10 with SDV 1.6.15 build 24356 on Microsoft Windows 11 Home Single Language, with 3 C# mods and 1 content packs.
It looks like the problem is with the Lee_kt map then. Where did you download this mod from? I can open it up and have a look.
It's from Bilibili, I can send you the file if you want.
It's only DMed by the owner for access.
Sharing other people's mods is considered mod piracy in this server so we wouldn't be allowed to do that. There might be an exception for something like this where I wouldn't be able to access it anyway but I don't know.
I have to go to bed now anyway but if you would like my help in the morning you can DM me and we can talk more about it?
Of course, thank you. I'll try to ask the mod owner too, maybe they can shed light. Thank you for the heads up too. 💞
hey friends, before i proceed with my current plan, i'd like to confirm some knowledge about museum donations.
the way it looks to me, if i add the context tag not_museum_donatable to an item, but leave it as type "Arch", it will appear with the standard description "Gunther can tell you more about this if you donate it to the museum.", but it will not be eligible for donation and (this is the important part) it will not count toward perfection, since the museum completion reward is not hardcoded and checks whether your count of donated items matches the number of eligible ones.
do i have this right? (to be clear, this is the desired behavior)
Is this for a custom object or editing a vanilla object?
custom object
actually, one edit: the standard description doesn't appear if it's not donatable. but that's fine, i can just mirror it
(i already had it set to the same text, so i didn't notice it wasn't being used with the tag set)
i guess the major question is am i right that it won't be required for perfection? i don't want to cause problems for people
Is there a way to get BuffEffects to display the buff?
These were the ones Selph listed as not showing icons
I think the suggestion to make sure that it shows up if it's not one of those is to set the Buff information in Data/Buffs and then call the BuffId?
i had report about stuff displayed in collection for my gems but they, as far as i know, never prevented perfection
for what i remember the collection display and the perfection check are separated
Thanks fireredily! Imma probably just drop a train on it and make it show em!!!
Off to Harmony Land, where birds sing, and mermaids sing sweet songs... luckily, I am a mermaid, so crashing on rocks is a sporting passtime!
How can I get the ids of the items in the game in bulk.
list_items in your smapi console will produce a plaintext table of every item loaded into your game, including modded ones
!unpack check the data files if you just mean vanilla
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!
I finished my little Gus mod 🙂 Thanks again to @hallow prism and @vernal crest for help on the dialogue flag stuff! Just putting together a blurb now for mod-showcase
thank you 
Ever wished Gus would lend a helping hand to new (and poor!) players? Well, now he does!
Generous Gus is a little dialogue expansion for Pelican Town's friendly Saloon owner.
https://www.nexusmods.com/stardewvalley/mods/32443
Y'all, would it drive you nuts if you couldn't see a buff icon thingie on screen for your clothes you were wearing? Like, u are wearing the leprechaun shoes, n they r giving u +1 luck and +1 speed. Would you just believe the item description, or would you feel like you had to see it on screen to believe it?
Hmmmmm. I don't think we see icons like +4 defense and stuff for the regular shoes, do we?
So I don't think it would bother me
Maybe you could make it a tooltip. A single "clothes buffs" icon that would display all cummulative buffs when you hover over it
Or perhaps just do that on the portrait for the player
I have it with the tool tip, like of you hover over the item, it is patched in the marmony to display what are the buffs, such as +1 Luck and +1Speed for those shoes. I extremely forgot that also there were not displayed such things for the regular shoes!
I think a tooltip alone is fine. If people complain, you can always try adding a single icon at the top and repeat the tooltip there
I would rather not have a ton of buff icons on my screen
tooltip alone isn't super accessible
especially if there's nothing showing you that you should be hovering over the item in the first place
I feel like i would need to see it to believe it,
Is the general consensus that if you want to match a short form instruction like ldc.i4.s 10 with harmony's codematcher, you can't include the operand in the match? I've tried casting the operand to byte but that doesn't match it. Only omitting the operand yields a match. (which works, but like it'd be nice to be more specific)
plus it's just weird to have a buff not be shown with all the other buffs
😅 im used to things going wrong all the time
I think it's sbyte
ooo
Shits confusing so honestly if u have enough other context you can leave it out
Esp if u wanna be compatible with ppl who modify this const in a transpiler b4 your own
all I want is a magic version of harmony that doesn't need to use IL and does exactly what I want, is that really so much to ask
simply let me edit the game code with my brain
let me edit the loaded instructions live, xkcd Mrs Roberts style
ChatGPT writing transpilers
now THAT I want to see
but no cop-out "ask it to write one then clean it up". hook into the API and ask it to write a new one every time you load the game
feels wrong to feed it decompiled SDV even just for kicks lol
that mental image gave me shivers ... please, no 
asked it for a transpiler, got this instead
(I do not actually want to see it haha, do not recommend)
dirt.crop.dead
i am dead
Wow banned \j
i can't even check if any of this makes sense
I love the useless toRemove var 
now it wrote a prefix
the longer i look the worse it gets D:
kek
Contains("die")
that's a great way to get invalid IL
just nop the call
stack? who cares about that
I hate that with a passion but there's a small chance that that strategy would actually work...
if you don't consider the stack 
ask it to use CodeMatcher
"you're right again!" I feel like I'm being gaslit
is that correct? i have no clue, i don't use CodeMatcher
i use my own lib instead
nope
why is matchforward taking a bool as the first param
and yeah, it should be one of those lmao
rofl
is setopcodeandadvance real?
i think so
yes i get autocomplete for it
idk why i'm testing this i should be modifying labels on the stack for a very not cursed transpiler
this one is still my favourite though. Write code by just chaining related words
farmer.annoyance.max
actually just used the complement SetOperandAndAdvance 
Evil entity character ideas?
Uh... what's the context for this question?
🙏 🙏
(note that if no one does, then you may need to just accept it, as showcase is quite like vouching and may not happen)
clearly they want character ideas for an evil entity /j
how about evil farmer but its in the same vein as evil hamburger helper mascot
vibe coding
evil farmer by like - I water the soil before tilling dirt
hes too dangerous we cant let him live
thanks @lucid iron !
Evil farmer who steals from junimos (we already fo this)
I am trying to make a custom token for PolyamorySweet which is essentially string NPCname , int dayofwedding. Like, if they wanted to know what day Claire from SVE got married, they would just put in Claire.DaysMarried. Is that possible? I am looking at the extensibility docs.
Yes, I am making a token class, like it was showing in the docs.
How can I add the same without conflicting with other huds.
add what specifically? a new meter?
Huds are hardcoded so you really can't without making specific compatibility for every mod that adds their own
Better HUD...
I know there's mana and hunger meter
without a hypothetical better hud meter mod you'd need patches for "no mana or hunger", "has mana only", "has hunger only", and "has both"
speaking of Better Feature... time to get to work on dehardcoding this I believe
Is there a mod that can be scope creeped? I do love scope-creeping mods.
and if there's another meter mod released after yours they would need 8 patches
I feel like SpaceCore should be the meters mod and then we can call it a day
and the one after that 16
...there's a debug command that adds another farmer? and it's always male?
why?
maybe to test multiplayer marriage or something?
I haven't thought about what to add yet, I just wanted to ask. thx
If you're in the early stages, I wouldn't worry about mod integrations (at first). It's probably more productive for you to focus on your mod + vanilla.
Introducing other mods just complicates things
But what about us lesbians? We don't wanna marry him!!!
A new mod idea: I harmony patch it to be a female farmer only! (Enbies sadly left out in the cold again!)
wasn't a third option added to dialogue gender blocks at some point? I could have sworn I'm looking at the latest decompile from the repo but it seems to only have m/f version in the method I'm looking at
I think there was a third undefined option for dialogue but the actual gender part doesn't exist(?)
${male^female^non-binary}$ for dialogue commands
I feel like it's more likely that it was meant to test cabin stuff
yeah, what I'm looking at doesn't have a third option at all
maybe it's outdated even though I thought it was the latest one?
are you sure its not parsing the old form
it's part of 1.6
I'm sure of nothing
oh, I guess technically it wouldn't error out for any number of blocks separated by ^s, it just wouldn't apply any of them 
I'll move this soon-to-be-rant to my thread I think
or somewhere else in general 
Is this what I want for my token code, so as they can input the name, and get the correct int? (NPCWeddingDate in the Dictionary defined earlier in the class, which gets its information from ModEntry.SpouseWeddingDate, which is added to whenever someone gets married),
public IEnumerable<string> GetValues(string input)
{
// get name
string name = input;
if (string.IsNullOrWhiteSpace(name))
yield break;
if(NPCWeddingDate.ContainsKey(name))
yield return name;
yield return "";
}```
Do you need C# to add new monsters?
that doesn't return an int at any point
nor can it, since the return type is IEnumerable<string>
Sorry, the int is in the dictionary, it needs to be there too I take it? (Sorry, I'm not super sure how CP uses this class!)
you aren't yielding the dictionary though, you're just yielding the name
if you just want reskins of any of the vanilla monster types with custom loot, stats and locations you can use FTM
So this is where we want to yield the dictionary, then?
honestly not sure, all I know is that you definitely aren't getting the date from what you have right now. I haven't looked at the custom token api in detail yet
How do you write the content.json for custom npcs post-1.6?
!npc
Keep in mind that making NPCs is a complex process that requires learning many different aspects of Stardew modding.
Here are a few links that can help get you started on all that you need to know:
-
Tiakall has a great tutorial on making a custom NPC for 1.6.
-
NPCs no longer use dispositions, check the wiki page for the new NPC data.
-
Aviroen has put together a template that will allow you to easily create a romanceable NPC.
-
Feel free to jump into the https://discord.com/channels/137344473976799233/1277457201077813280 thread for more interactive feedback and help!
-
Fireredlily has a WIP NPC Builder Please do report any errors you get with it into the NPC thread!
The first one is overview
thank you!
Here's the whole class:
Pastebin.com is the number one paste tool since 2002. Pastebin is a website where you can store text online for a set period of time.
still don't know what actually works, just that this wouldn't
I see! Thanks! So I want to (likely, mayhap) make the yield be string, int, then?
well that's not possible because your IEnumerable has to have a specific type
right now it has string
but again, I don't know
This is where what the player types in gets defined, I want to make it be a custom name, so they can make it be any npc for whom they wish to use.
contentPatcherAPI.RegisterToken(context.ModManifest, "NPCNAMEHERE", new WeddingDateToken());
Gonna change my return to int...
I doubt that's a good idea, since tokens are inherently strings anyway, and I think you may be looking in the wrong place regardless
as mentioned by chue above you probably want one token that accepts arguments with the advanced api
that is the advanced api I believe
I'm scared to because idk how likely it is to be completely changed
since it's technically an experimental api
Eh if you need it then use it
I am thinking that instead of this, I might well just add to the CustomFields thing in CharacterData, can that take string, int?
And instruct the end user wherein to access that?
You can't because that's not stateful
Add to modData is ok
Make GSQ to check by modData is also ok
Can people access an NPC's modData in CP?
Only with token (which u r trying already) and sometimes GSQ (which only gives true false and won't work in a when)
tokens is how you are supposed to expose things to content patcher here
I'm curious, how do you imagine this being used? Because if the main usecase is to determine whether TARGET NPC is their marriage date today, then a GSQ would suffice
I spose I could make a token which is just an int token, and is like AbigailWeddingDay, ClaireWeddingDay, EmilyWeddingDay... and so forth. Hackish, and will need many updates by me, but, my wife is trying to make em go to sleep.
The end user wants a token where they can use for the spouse's anniversaries.
