#making-mods-general
1 messages · Page 356 of 1
No
but yea i think i dont want to change it, since u can in fact just move that one
It's the starter package in the farmhouse; I think it's in the farm map properties, but I will double check
DayStarted trigger on mushymato.MMAP_ShiftContents for wherever the seed is
the reason why i bothered with farmhouse furniture at all is because moving bed after the fact doesn't work very good
So this will control the placement of the starter package?
not quite, it's a trigger that move stuff in a location
Oooh neat
mushymato.MMAP_ShiftContents 4 7 X Y 1 1
but you do need to magically know it's at 4 7
or u can do a wider area like
mushymato.MMAP_ShiftContents 3 6 X Y 3 3
yea
it was originally made so that you can upgrade a custom farmhouse without stuff ending up in the void
The starter package is defined in the farm map properties (like the furniture) so it's fine for vanilla maps, but tricky when it's a custom map that puts it in a weird place. But there's a fairly narrow area it can be in, and if all other furniture is cleared with your other command, it should work
That is SO cool. It's what got me working on this mod again ❤️
Thank you so much
make sure u mark trigger as applied, and block it behind PLAYER_FARMHOUSE_UPGRADE Current 0 0
sometimes I am a fool; sometimes I am wise and notice when I was a fool in the past. (I locked a variable assignment in one place but not the other place it gets assigned thus rendering the lock useless)
wait is leah back alive?
Am I able to stack conditions? like When: hasseenevent and also When: somethingelse
yes you can add multiple entries in When. it'll be true if every condition is true
leah lives
yay! im gonna wait to post my mod though to let u and claire's mods get the attention they deserve 
u sure?
Yeah! 
thank u 
wait no, you might be onto something
someone should make some new wood and stone-themed recipes which use furniture
wood sandwich:
2x wood path
1x wood floor
Aw we still can't pub other people post
(to clarify Selph's response though just in case (bc of the way you worded your question initially), you will only write "When" once. you cannot literally write "When" more than once per patch, but you can put multiple things inside a single "When")
Maomao pfp 
Ahh, i see
that is helpful
did i mess up the formatting, or is the i18nifier bugging out? it converted the reaction text properly for my previous quests i input into it
i can do it manually of course but i'm worried i did something wrong
can i alter the trash can animation through content patcher?
you havent split up the text from the action
what's the format for that?
same as any other dialogue. put a # between the text and the $action
so i've been doing it wrong the whole time 🙃
Make sure to chech the CP documentation to see what you can do with conditions
probably not. you can almost certainly change what the cans and/or lids look like, but if memory serves the animation is done in code instead of being baked into a spritesheet, so CP won't be able to edit it
that is what i was suspecting. thank you for the answer!
i must still be writing this wrong :( /Excellent work, @. This void essence will help anchor the ghost to this plane during the ritual.#$action AddMail Host SeanceIngredients1 received",
a different one works, because it has a #$b# in it. do i need to put a break whenever doing actions?
yep, it became necessary down the line for some of my more complex code in specific circumstances - as I understand it I need to avoid threads when it comes to game data or graphics, but in this case it's all internal data that gets handled by the added threads
you dont need # in front of the action iirc
i might be wrong tho
button said i did, but i don't know if i understood how to do it correctly
Nice!
you do need to have a # (the $action is its own dialogue command, so you need the separator). you don't need the $b, but you may also just have to rearrange your dialogue; action parsing in dialogue strings is a bit fucky and sometimes breaks for mysterious reasons
also, dont judge functionality based on the i18nifier. judge it based on whether or not it works in game
if it works in game but not in the i18nifier, its just a bug with the i18nifier
yeah, that's true lol
gosh ive been doing something wrong the entire time 
Drink some maple syrup ingame to celebrate? 😛
In and Out and sleep is my goal
atra when will u graduate 12th grade physics
They're moving along at a pretty fast clip so I predict before the end of winter
My winter. Their summer.
I see you are really committing to a prediction Elizabeth /lh
I’m a regular oracle
is there any way to mention your pet's name in dialogue during an event
"gotPet_memory_oneyear": "I just remembered... it's been about a year since you adopted %pet. I bet you two have grown really close by now!",
%pet should work, but will probably only work for the pet you got in the event
it doesn't look like it is a CP token
https://github.com/Pathoschild/StardewMods/blob/stable/ContentPatcher/docs/author-guide/tokens.md from ctrl-F on this, anyways
i believe it's a built-in replacer command in dialogue?
thank you! i'll try it
SilkSong before the end of winter, for sure
the question is what if you have 2 cats — I'm not really sure if it will do cat 1 or cat 2
Someone find what happens lol
public string getPetDisplayName()
{
foreach (NPC j in Game1.getFarm().characters)
{
if (j is Pet)
{
return j.displayName;
}
}
foreach (Farmer allFarmer in Game1.getAllFarmers())
{
foreach (NPC i in Utility.getHomeOfFarmer(allFarmer).characters)
{
if (i is Pet)
{
return i.displayName;
}
}
}
return Game1.content.LoadString("Strings\\StringsFromCSFiles:Farmer.cs.1972");
}```
this
from this (Dialogue.cs):
str = str.Replace("%pet", this.farmer.getPetDisplayName());
"which pet name will it return?" "yes"
looks like "the first one it finds", which is wild
made more sense when you could only get one pet
tbh while it is wild it's fully in character
oh yeah, this is the good kind of wild. the "based CA" wild
It's canon
Npcs just talk about the first pet of yours they remember
What's the fallback
lol
"Farmer.cs.1972": "the farm",
(nodding) the farm
it's been about a year since you adopted the farm
"It's been about a year since you adopted the farm...oh, by the way, what happened to the cat?"
the farm:

so this is a c# thing... but how difficult would be, relatively, to learn how to change it 
my guess would be annoying, since im willing to bet itd require a transpiler
im not 100% guaranteeing it would, but it seems like something that would need it
ello! i little python tool for event scripting i made 
its not a full-on program, so it won't do much of the work for you, since event scripting takes a lot of creativity. however, it will (hopefully!) make event scripting more easier to read and more user-friendly.
you'll have to use some functions i added in a section of the code then run it to get the script text. disclaimer: you do need understanding of event scripting - it's just a tool to make the process more convenient.
also, emphasis on simple. this tool was initially made for personal use, so it's more catered to which commands I use most often. it doesn't include the entire command list, but it does let you add custom commands that isn't specifically supported by this tool.
get it here: https://www.nexusmods.com/stardewvalley/mods/35281
Trashcan animation is a TAS, so theoretically you could add a postfix and try and figure out which TAS is the lid and either replace or modify it
Depending on how you change it, you might also have to do some tile fiddling
It IS possible to do without a transpiler but may be simpler to do with one
Is it broadcast
I have a question
Can the "Action Letter" property type be changed? Like, to a Joja letter for example? Or is it always the default one?
log: https://smapi.io/log/6ee8d640438a429aaa5b1aff6b20f22d
json: https://smapi.io/json/content-patcher/11564c559b8b4770a24a7f9cef066ca6
i haven't touched this file in 4 days according to github and my computer, and yet suddenly my world map patch isn't appearing in game 😭
Log Info: SMAPI 4.2.1 with SDV 1.6.15 build 24356 on Microsoft Windows 11 Pro, with 19 C# mods and 2 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
I've heard Vortex can occasionally delete files for seemingly no reason, if that helps at all
the file is still there and it appears in the log though, which has me 🤔
The SpaceCore warning, right?
no, the spacecore warning is referring to a .tmx file i have with an invalid warp because it doesn't link to a location yet
Ah, okay nevermind
If you're referring to the letter background, you can change that to other types. See the bottom of the page here: https://stardewvalleywiki.com/Modding:Mail_data
not sure if it matters, but there IS no vanilla LooseSprites/map_spring
spring is just LooseSprites/map
(can't EditImage an asset that doesn't exist yet, so maybe try Loading map_spring first with a Low priority?)
Or, y'know, ignoring the season argument in spring.
ohhh i wonder if that's it, because i had originally not had the season token in there but then it was ONLY applying for spring
Yep, map, map_fall, map_summer, and map_winter are the vanilla assets
i probably fast forwarded to summer and didn't test it in spring again after that change
how would i make the patch ignore the season token in spring?
Make a separate patch for the {{season}} variants with a When condition
oh so no matter what i need a second patch, either to when condition it or to load it
thank you!
There might be a way to do it in a single patch but my brain can't think of one right now.
so fair haha
i'm trying to become smarter about my patches in general, because before i was just doing whatever tutorials told me to and not understanding it
but sometimes that leads to me overthinking it
But yeah, you could do two separate EditImage patches as well, and just make sure the LooseSprites/map one is "When": { "Season":"spring"}
and the other would be something like "When": {"Season":"summer, fall, winter"}
in general, do you need to make sure that all posibilities are covered by conditions? or is it okay practice to have the other one be conditionless?
Normally it's fine, but I don't know if the fact that you need separate targets matters.
Like, if you have all 4 assets, does the game skip over LooseSprites/map and go straight to LooseSprites/map_summer in the summer anyway?
Could try it without putting a condition on the "Target":"LooseSprites/map" (spring patch) for science.
hooray!
feels janky though lmao i might put it back to be safe
LOL
i also am realizing that i18n messed up my map strings ugh
That's me with adding non-{{season}} token references to summer because of the dang ginger island. xD
(I started to just load summer separately because otherwise the island gets mad in spring)
i based one of my maps off of the ginger island cave, and oh boy was it mad about me trying to use fall tilesheets for the Vibes haha
I have no issues finding it
what for though?
which folder is it in? I just dont like the summer one and was going to copy spring onto that spot
Is it possible to warp the farmer immediately to the farm after we finish a character event just like it did with regular occurring event?
those are overlays, you'll need to replace that with the complete asset
same folder structure as the game: Tilesheets
As far as I know, that normally just happens after festivals or weddings, and normal events don't have a built-in command for it. The closest option seems to be end warpOut to leave the event's map. changeLocation and warpFarmers exist too, but I don't think they'd be safe with custom farm maps.
something to be aware of
I don't know whether that means developers or mod users, or both
and they're probably required to do so by law, at least in some countries
including the UK, which is where they’re based
and which has issued a threat of at least £18m for offenders
is there a mod where I can make custom villagers? like customise their preferences, name, birthday, the way they look and more
!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!
Uh technically there is a mod, but the catch is you have to make said mod yourself
does it need coding or something like that?
this is highly disappointing tbh, we all know people are gonna get the downloads they want somewhere and if they can't get it from nexus it just opens opportunities for people to start websites that specifically distribute "that" kind of mod and those websites are not gonna be as safe as nexus
coding as in C#, not unless you want to. Coding as in writing lots of json? yes
you should read up on the npc making guides to get a feel for the basics
although "lots" is also kinda up to you
depending on how complex you want to make your npc
it’s the law. They can’t do anything else. And not banning something because if you ban it people will go elsewhere is a weird argument, especially since those websites already exist.
(It's the law.)
alright I'll take a look though I don't think I'll make it since I'm too lazy but thanks a lot!
(If you don't like it complain to your government.)
like I really don’t know what people expect nexus to do about this. Pickysaurus says the minimum penalty for their kind of business is £18m. Trust me, they can’t afford that
(assuming your govt is the UK govt whose law it is
)
i dunno much abt uk law but is it something like either banning all adult content or the website requiring age verification and they chose the latter?
im fighting my laptop rn
(Well complain at your government if they have a similar law.)
yeah I know it's the law lol there's obviously nothing they can do it's disappointing that it's the law is what I meant
I’m pretty sure it was just “make sure you require xyz authentication for adult materials, or else.”
so yeah, those were their options in effect
A similar law recently survived supreme court review. For example: https://www.washingtonpost.com/politics/2025/06/27/porn-online-age-verification-supreme-court-decision/
yes and no. I haven’t checked yet but I’m not sure the law even requires IDs. Asking people to implement age verification for adult materials is not really that big an ask, imo.
actual ID is where you lose me, 100%
people don't want to put their personal information onto that stuff so they'll find other sketchy places that don't need it
but it does require id
can you show a source for where the UK law requires actual ID?
they need something like facial recognition, credit card, licence etc
(/gen, I haven’t looked into it yet)
not at the moment I'll get back to you when I'm on a computer and I can find the thing I looked at
facial recognition? what would that achieve?
(Although the TX one is directed at...uh, more of a... film thing and I suspect not...certain gravity modeling programs)
(I believe AI) it's a way to basically scan the face and check if the user is over 18
i thought people just used facial recognition to make sure it's actually ur face on the ID, not anything like that
anyways i feel like the conversation has gotten away from making mods
it's meant to be an alternative to giving ID but it requires you to give your face to an AI so
oops
so uh
modding am I right
so I just read the guidelines, and that is not in any way specified in the OFCOM guidelines. In fact, the ofcom guidelines even allow using email-based age estimates instead of all of the other methods, and are open to any other method that is proven to be effective and goes beyond self-verification.
(source: OFCOM). While I agree that there is plenty of room for concern regarding requiring any amount of personal information online, I also think making it sound like something that it isn’t is an issue and distracts from the problem at hand. All OFCOM are really saying is that they no longer allow users to just pinky promise they’re over 18.
what I'm trying to say is that people still can and will
they'll use smaller sites that haven't been hit and might contain malware
they'll use vpns
they already do.
people who are currently using safe sites will use not safe ones
that's the thing that worries me most
Or ko-fi
if it was going to actually prevent the consumption of that media then sure but I don't think it will so I think it's an unnecessary danger
It's not required for normal usage of site though just restricted content
Ah so mod users and modmakers both are fine if they avoid Adult content on nexus?
yup, your experience won’t change whatsoever in that case
Okay cool
We can complain after the experience changes for the worse
I’m not going to say that this law is 100% great, it’s definitely concerning, but it’s been blown out of proportion a fair amount by some people. I agree there might be a problem with where underage people go if they want this stuff now but that’s not really up to nexus or even relevant in this particular discussion of nexus’ choices
I mean, if it always is, there’s no point fighting about this one, right? /lh
anyways
how have you guys been finding the 1.6.16 alpha so far if you’ve used it
All yer furniture broke 

I used it one time to check if me mods work there and so far only the enchantment one broke
lewis is getting replaced with a new npc named MegaMayor5000
Buncha changes to several assets. Big change to events (though the old stuff will be deprecated so it'll still work).
Which is expected
I want to explore the new event commands but all my mental capacity is going towards landscaping so I have no brain left for even getting 1.6.16 to work let alone playing around in it yet.
all events now start with an unskippable scene of the farmer riding a bear
A new version of the game still coming?
not really, mostly under the hood changes
(I wonder if there will be new content)
as far as we know
So.. old mods should still work?
if there is content, we won’t find out until it’s out
Phew
I think Pathos plans to do a lot of older mod rewriting in CP to preserve as many older mods as possible?
(but it’s never guaranteed, so if you can, write new mods with stuff that isn’t deprecated please)
(was there new content in other 1.6.x updates?)
(genuinely have no clue, last update I was around for was 1.6.0 lmao)
(that one did, in fact, have new content)
How?
Is it just including a version in manifest?
No, things like don't use the single letter alias preconditions in events etc
finally
choose/goto is replacing all question types right?
Version History page says there have been 4 updates with new content since 1.6
that seems like just a way better question fork
😔 im still used to the letter preconditions... I guess I should switch to the new way for when i get to my events
Yes or I will
you /j
There might be some utility left in using speak \"$q bla bla\" that isn't covered by choose/goto but for the most part, yeah, choose/goto should be the weapon of choice.
no more public Lewis/Marnie "antics"
they've learned the forbidden fusion technique
They should've changed it so they send you mail acknowledging the gender change lol
"We heard you've changed your gender, just know we support you and your name change, my dear [74][454].
All the best,
Mom"
(prismatic and ancient fruit)
Identify as item spawn codes
Yes exactly. Give all the anti-woke crowd conniptions!
It does seem like a simple mod to make tho
i identify as a [434]
Can anyone suggest a way to make the vanilla Charcoal Kiln produce not only coal but also ash? I don’t see the point in copying the machine into my mod just for ash. I could add an ash recipe for the campfire, but then ash could also be cooked on the stove — which would be strange..."
If you want to add a chance for ash then you can do it by new rule
Need emc for byproduct
Best way, thanks
very tempted to try the new alpha release because I use switchEvent and I just KNOW it's gonna take forever for me to adjust.
today though, today I suffer while I try to figure out/wrangle maps
you're welcome to try it out, but as pathos has mentioned, there's no timeline for release, so don't needlessly delay the release of your mods by holding out for it
That definitely helps haha I think scope creep is more of a danger for delayed release than anything:p
Is anyone working on updating Dynamic Bodies to 1.6 by any chance ?
How do I get the 1.6.16?
has gog support
beautiful, thank you!
"Action": "EditMap",
"Target": "Maps/Forest",
"AddWarps": [
"111 83 {{ModId}}_FloralGlade 16 19"
]
}```
can anyone help me figure out why it keeps saying that my warp is wrong?
it says Can't apply map patch "TheWolf > EditMap Maps/Forest" to Maps/Forest: AddWarps > warp 111 83 CacklingCaracal.TheWolf_FloralGlade 16 19' couldn't be applied: must have exactly five fields in the form fromX fromY toMap toX toY.
what's the extra field I'm flubbing T>T
hmm, that looks like five fields to me
are you sure your target location is fully loaded and reachable (via, e.g., debug warp)?
the other thing i'd try is to put in something that i know is one word for the target, like Mountain, and see if it stops complaining. if it does, you maybe have a non-printing unicode whitespace in your mod id or something wacky like that which is breaking parsing?
I can debug warp to it just fine, though it's zoomed in kinda close. I'll try a different Target and see what happens 🙂
zoomed... in?
yeah like I can't see the fencing off to the right or the rocky walls. I did get the map to warp though!
Is anyone here good with Fashion Sense hair packs? I'm having trouble. The Back Hair won't show up in game, it just shows the side hair instead
This is how my sheet is formatted. It's 64x32
I looked through the docs but the examples for long hair are animation only, as far as I've seen
Hold on you know what
I was editing a copy file
smh
Okay, I fixed part of it. Now it only shows the front hair no matter the position
I feel so embarrassed. I figured it out. So Sorry for clogging chat 
StartingPosition
Set that to the top left pixel of each hair
Yeah, I figured that out after I posted these ;; embarrassing
Ah, true! Basically, elaborating on what you said: If you don't set the starting position of your hairs (top most left pixel), they simply won't show up/if you set them all the same, you'll get a funny image of all your hairs lined up on your character
Identifying the pixel placement, it'll be on the bottom corner of aesprite (idk other programs, sorry!)
is there any text that can’t be i18n? i’m running into errors with my farm animal display names, and with the display of strings from cs files in the world map
the game has no way of knowing you used a token. if something supports tokens and expects a string, it supports i18n
if you mean [LocalizedText], thats a different system entirely and there are limitations to that, however if a string is user-facing it generally supports it
For the map messages they take a translation key
(there are ofc exceptions)
So u gotta i18n token edit that
i assume nic is talking about Data/WorldMap?
you could just put the text directly in there though with the i18n token, you dont need to give it a translation key
the world map just uses [LocalizedText] but you dont need to follow suit if you dont want to
Turns out I did need to edit some Rizum sprites for SVE, how do I make my content pack replace the SVE sprites? I dunno how to read that content.json.
yeah i was following vanilla examples of localized text for that
then yeah, you need to follow the tokenizable string system, not just Content Patcher's system
[LocalizedText {{ModId}}/MyAsset:someKeyHere] will look for the string -> string dictionary under the Target {{ModId}}/MyAsset and look for the someKeyHere entry and take its value as the text to display
if {{ModId}}/MyAsset doesnt exist or it does exist but doesnt have a someKeyHere entry, it wont work
there is no reason it needs to be in Strings/StringsFromCSFiles
so i would directly put [ localized text {{i18n.text path}} ]?
no
you would put [LocalizedText {{ModId}}/MyAsset:SomeKeyHere]
elsewhere in your mod you would put an EditData action on Target {{ModId}}/MyAsset
and inside Entries put "someKeyHere": "{{i18n: your i18n key}}"
but again you literally dont need to use LocalizedText at all here
(also you would need a blank.json load to {{ModId}}/MyAsset first)
(you CAN also just put it in StringsFromCSFiles instead if you want im just trying to make it clear that it doesnt need to be. it just needs to be an asset that is a string to string dictionary)
oh then i’m confused about what’s going wrong i think. i do have it in strings from cs files, and that’s i18n-ed, but the error i’m getting is no translation. are {{}}tokens not considered strings or something?
please show your json for every relevant edit here, stringsfromcsfiles and i18n and data/worldmap
okay one sec i’m on mobile
lines 348/349 of the i18n are the relevant lines
tokens dont work in i18n keys
bc i18n is not a CP system
{{ModId}} in an i18n key will jus end up as literally {{ModId}}
but in your content.json (or whatever) it gets turned into your mod id proper
also, a mod ID at all in your i18n keys is entirely unnecessary
i18n keys are not shared across all mods. they do not need to be unique whatsoever aside from being unique across your i18n
It should also be Characters/Wizard but I don't have SVE on hand to check
Use something like vscode to do multi file search
the keys were added by the i18n conversion website automatically whenever something was named {{ModId}}_name. do i have to remove all of the {{ModId}}s?
either remove them or replace them with your actual mod id written out
okay. if i replace it with my mod ID written out, can i leave it as {{ModId}} in the content.json?
can you give an example of what you put into the i18nifier that made it spit out a key with the token in it?
you can yes
(im not asking bc i dont believe you, im asking bc if so itd be good to report to Nomori (i think?) with a test case)
I don't know how to search for terms within files.
There's a side bar 🔍
all of my quests for example https://smapi.io/json/content-patcher/88f368d2c932491193a450b20a07883d
do you have an example still from before you put it through the i18nifier
actually ig its easy enough for me to take one and un-i18n it
See... I don't know where the bit that changes the overworld sprites are.
Yeah so look for Target that involves wizard
I am fairly sure it is just editimage tho
can you confirm for me first that writing out the modid in the i18n key directly does fix it before i ping nomori
sure, let me set that up real quick. might take a second as i transfer files
i'm pulling everything down off of github haha
The point is that u can search across whole folder
no rush!
I guess I'll just do a simple edit, then. Think it's kosher to copy the image edit command from SVE?
This is too useful not to...
theres only so many ways to write a basic EditImage, and beyond that SVE has very open permissions for edits, so you're fine
Alright. Do I need to have the RR stuff mentioned in my manifest for the HasMod to be considered?
HasMod will work regardless of whats in your manifest
having it in your manifest as an optional dependency however will mean your mod loads after it, which may be helpful
Phew, alright. Will add them to my mod, then. This might actually be something I can release on the Nexus.
{
"Action": "EditImage",
"Target": "Characters/Wizard",
"PatchMode": "replace",
"FromFile": "/assets/MagnusOverworld.png",
"Priority": "late",
"When": {
"HasMod |contains=Parrot.RomRas": false,
"HasMod |contains=Jellonip.RRRR": false
}
}```
Overworld sprite is still SVE. What am I doing wrong? It's that one slash, isn't it.
The one slash seems like not a good plan
replacing {{ModId}} with my mod id written out does appear to have worked!
mind if i use your json link to let em know then?
for sure! did you want me to confirm that that was the issue by testing other things like mail and quests? i hadn't gotten around to testing those after i18n, but if you're confident that that was the issue then i won't bother reverting the change, testing that, then un-reverting it to test if that fixed it
im rather confident
okay sounds good 
shoulder surgery sucks.
@whole raptor hello! your i18nifier doesnt seem to be correctly removing CP tokens from i18n keys for some of the i18nifier categories. using this Quests json as an example:
https://smapi.io/json/content-patcher/f94885282b7c480299f08b274679ae4c
the resulting i18n keys are "{{ModId}}_EverbloomQuest.title" etc which wont work bc tokens dont work in i18n keys.
i also tested this just now with the other i18nifiers and it seems like Recipes, Gift Tastes, Dialogues, and Movies also keep the tokens in the resulting i18n keys.
Events and Objects do seem to correctly remove the tokens, however! i didnt test the config one bc i dont think those support tokens in general anyway. though for Events and Objects, doing {{ModId}}_Text worked while doing {{ModId}}Text does not and leads to some malformed output. dont know if you wanna do anything about this.
(if you're already aware of this stuff then my apologies for the ping, i just wasnt sure how to find if someone brought it up before
)
You will likely need to make a map edit for that particular spot--is it one of the renovation hallways?
Or a custom farmhouse?
uhhh, IDK!!! Ill take a ss
could you tell me if my farm house is modded (not the furnitures just the layout)
The hallway stands out alot!!!
You have to edit the tmx
may I know the name of the file for the hallway thingy 
You know how NPCs talk about getting stuff at Pierre's and it being bad or good? Is there any way to change it for a NPC?
You will have to dig in whatever wizard romance mod
I've found stuff like how to change what they say when they see you dig in the trash, but not that one
the trait that allows them to is CanCommentOnPurchasedShopItems—could look for a reference to that in strings maybe?
ooh thank you, that's perfect
looks like something is either editing FarmHouse1.tmx or possibly a recolor is getting overridden (or is missing that section). That's about all I can say for this, though. Farmhouse edits scare me (for C# reasons)
Yeah, that's definitely a recolor in play for the top borders that doesn't hit the wood trim on that wall
Do you use Hallway Fix?
Since it's just that bit, it seems like it could be Hallway Fix
Maybe check your settings and see if that's in there, it has compatibility stuff built in
it can be set to do other stuff, but I think it defaults to just that hallway
And I know it has its own textures for that specific bit of wood trim that are colored oddly for you
might just need to set it to the right recolors if that's what you've got
these are generic dialogues in Data/ExtraDialogue:PurchasedItem_x and cannot be customized per-NPC
there are some hardcoded exceptions for specific NPCs
👍 Good to know! Luckily turning them off and having a generic comment on Shop Day suits me fine
The hardcoded exceptions threw me off
yeah it literally checks for Abi, Caroline, Pierre, Haley, Elliott, Alex, and Leah, but only those ones. it never does a generic "or whatever name is here" check
probably not a bad thing to ask about for 1.6.16 tbh
!commissions
If you're looking for people who do mod commissions (either art or code), here's a wiki page with a non-comprehensive list of people who do them: https://stardewmodding.wiki.gg/wiki/Stardew_Mod_Commissions
It'd be nice to have, letting people set their own "bought at Pierre's" dialog
I mainly wanted my guy to not comment badly on stuff he bought to the farmer, so turning it off is perfect for me
look at the message that governor sent after that.
(Though I will say that your portfolio has nothing in the way of anything that would be relevant for people wanting Stardew mod commissions. Might be worth working on some stuff first to show you can do what people would want?)
i was interested what their portfolio actually was if it wasn't stardew relevant so I clicked the link in their bio
bam
flashed
(also a reverse image search of a random thing on there reveals its stolen from artstation, so...)
(yeah everything i reverse search on there is stolen)
(I was just about to do that myself, thanks button /gen)
I'm always puzzled by 3d modelers (alleged) coming in here to advertise modding services
Do they ever get anyone
how often does it happen?
it seems to be more common in dms than in the server
oh I did have one of those a while back (it was reported to bouncer at the time dw)
I'm getting some pics for the upload, how do I trigger the first cutscene with the wizard?
But like this might get one or 2 ppl in a skyrim modding server but who r they fooling in the 2d farm sim game modding scene
idk, I’m tempted /j
And the event ID for that scene iiiiisss...?
you can find it in your unpacked files
we are unfortunately (mostly) human people without perfect memory of every event ID in the game
if two npcs have stories that are very tied up in each other, would it cause (gameplay) problems to have some of their heart events require having seen one of the other's heart events?
it shouldn’t cause gameplay issues but you’ll have a million people ask why they aren’t getting events
You can alleviate it a bit if events for A give friendship to B
hmmm good idea
(obviously if the requirements are cyclic they just won’t trigger, but I assume you already guessed that)
yeah ofc
another question: would it cause problems (e.g. with perfection) to have a non-romanceable character whose max friendship is permanently lowered by chosing something in an event?
(or lowered long-term with the possibility of increasing again through some other event)
you can exclude an NPC from perfection
is that necessary here?
if its only lowered to 8 minimum then its fine
but since you said non-romanceable 8 is already the max
helooo could anyone explain to me how do I trigger onAssetRequested outside mod entry?
or maybe its 10 for non-romanceable still
either way. if its lower than the usual max for a non-romanceable, it needs exclusion
I intend to do 'group' events eventually for my own mod, and what I will probably do is set odd-numbered heart events to require multiple NPC friendships just to make it be clearer. XD
the max friendship for perfection (8 or 10 depending on romance) is hardcoded in Utility.getMaxedFriendshipPercent, so you'd need to exclude them or patch that, among anything else
i'll probably patch that for this character then
im not sure why you'd do that instead of conditionally patching their PerfectionScore
hm?
PerfectionScore is the field on their CharacterData that determines whether they count for perfection
getMaxedFriendshipPercent is a loop over every CharacterData so patching that to specifically exclude yours seems like more work
i want the npc to count for perfection, just with a lower friendship requirement under some circumstances
even if its just a postfix that redoes all the work (and messes up any other mod that might hook into that calculation)
you could make PerfectionScore false (exclude them) if the player has e.g. 6 hearts with them
but make them count if they dont
that would give the wrong percentage, wouldn't it? although i guess it would only be off by a tiny bit
the % is binary, so editing the asset to toggle the perfection flag would be identical very similar to a patch
oh okay
it would, though the player would only know that if they knew exactly how it was calculated anyway and were looking at the qi room scorebord
itd be the difference between like 27/30 vs 27/31
what are you trying to do? You don't trigger it; the event gets triggered when an asset is requested by the game and then you can assign your own method to be included in the code that runs when the event gets triggered.
I'm trying to add a custom animation, but as far as I got was making the game crash out because Sprite.LoadTexture was searching in the game files (but for some reason my animation displayed but completely broke the npc)
(actually it might be 28/31 for the latter)
prefix that modifies the characterdata and postfix that fixes it 😁
not only is that still more work im pretty sure but also less performant
even if only technically
but the most compatible 👍
getMaxedFriendshipPercent is called a lot
the game very rarely looks at perfection anyway, but I'd defer to "don't patch stuff for no reason"
i dont know why changing the PerfectionScore is less compatible
i.e. I removed like 10 perfection patches once it became a 1.6 native thing
oh lmao
(also why I forget how they work now)
no i mean as compared to other methods of patching that function
oh. then yeah, itd be the most compatible out of the harmony options
besides a transpiler
but it might be equal to a transpiler
in terms of compatibility
however transpiling loops sucks ass
making compatible transpilers is tricky
I already have a working event hook I just can't find what exactly triggers it (what methods count as requesting the file without it breaking), and I know it works because before I was working with temporaryAnimatedSprites
(actually ig basic loops not so bad, but once they start involving early continues or skips or using LINQ it sucks)
(this pulls excluded npc settings from an asset, but yeah)
https://github.com/Esca-MMC/CustomNPCExclusions/blob/ee332258fa3efd747b4e0a0fee52bafe89f72a63/CustomNPCExclusions/HarmonyPatch_PerfectionFriendship.cs
oh right, they also renamed the whole NPC asset
but the basic logic was in fact transpiling out any NPCs who should be ignored
gotcha, unfortunately I can't help with that but I'm sure someone with more specific TAS or animation experience can
and again the weirdest thing is that my file gets loaded somehow, but then the game tries to also look for it in the game content and everything breaks
you can request an asset at any time and from any function
aka there are infinite ways to potentially trigger an AssetRequested event to happen
it always happens if the asset in question is invalidated and then someone needs something from that asset again afterwards
but is there like a specific way to do that? as I said I managed to get it to load using just the file name, but Sprite.LoadTexture also tried to look for it in the game content
anything that asks for an asset name does it.
so how do I prevent it from looking in the game content?
if something requires looking inside a data asset for something, it mustb e loaded. it doesnt matter what it is thats asking
do it the other way around and load your file into the game's content pipeline
https://www.stardewvalleywiki.com/Modding:Modder_Guide/APIs/Content#Add_a_new_asset
then presumably set the textureName field in your created TAS-es to the name you use there
theres been an misunderstanding somewhere, I'm not using TAS-es now, before I did and it worked fine with just the file name but now when trying to set npc.Sprite.LoadTexture it both triggers the hook and looks in the game content which obviously it doesn't exist
Why not just keep using the texture name
it both triggers the hook and looks in the game content which obviously it doesn't exist
that is why Esca is telling you to make it exist
Make it exist by implementing AssetRequested
you WANT it to look in the content pipeline
a TAS cant get it from anywhere else in any case, but even if it could, you want it in the content pipeline
oh OH
everything in the game uses the same content system, and AssetRequested causes whatever you load with it to be available through it
e.g. that wiki example allows the game to load a dictionary if any classes look for "Characters/Dialogue/John"
I think i showed u my tas custom asset code before
That thing was meant to be used with a content patcher mod that would do Load or Internalassetkey
And in the back cp does the asset requested handling to make it exist
(CP doesnt do that with InternalAssetKey, SMAPI handles it)
(just to make it clear that an internalassetkey will not be in the content pipeline and CP will not make it so.)
Wait i thought it gets a SMAPI prefixed asset name
yeah well I see where I got confused but then how the hell does it both display the file and throw an error for file not existing
it does, but for all intents and purposes, its not in the pipeline proper, as nothing else can touch it
But yeah putting that aside u just need to do it somehow
and that behaviour is undocumented and internal, as it can change without warning
it may not do so in the future (not that id assume it ever will change)
Hello. I have a question about map editing. I hope I'm not interrupting
an internal asset key requires a relative file path, so its safe as long as the end user doesnt rearrange the files. if they do, then the mod breaks anyway
I have already set up a custom map, and added warp locations. But how would I replace the town map with the modded one?
You want to patch only little bits of it
How would I do that? 😅 sorry this is my very first mod
There's 2 fields for EditMap in content patcher FromArea and ToArea
The command for the Json file would still be edit map?
Yep
Thank you! Will I need to make a custom map with just the edited patch?
Depends on what you want to add
so my entire case was something that should work but it doesn't for some reason, I have a hook and load the file into the content pipeline as far as I understand it, it loads the animation initially but then it doesn't
I'm adding a path at the edge of the town map that will warp to my custom map. I've already edited the location on the towns map but I just need to figure out how to apply the modded area so the warp will work.
If you wish to make a new location then you need to Load the map and then EditData a Data/Location entry to use the map with
Thank you! I'm gonna try that
To add onto that, for the path on the town map, you would use FromArea to grab only the portion of the town map you changed on your TMX and use the ToArea to position it into the existing Town map in the intended space through your EditMap patch.
Oh, whoops, ignore me, I completely overlooked where you said you already edited the location on your towns map and thought you hadn't put that in game yet either
Yes I have the warp set up already. I just need the town map to be edited so I can access the warp area
So I would need the coordinates of the map tiles for this right?
Correct
Specifically you are looking for the top left corner of your patched spot for your x,y coordinates and then the width and height of your rectangle area from there
and would the format be (x, y width heigth)?
There's an example further down the page chu linked that may help: { "Format": "2.7.0", "Changes": [ { "Action": "EditMap", "Target": "Maps/Town", "FromFile": "assets/town.tmx", "FromArea": { "X": 22, "Y": 61, "Width": 16, "Height": 13 }, "ToArea": { "X": 22, "Y": 61, "Width": 16, "Height": 13 } }, ] }
(that patches the town square)
Thanks for letting me know! I did fix it for events a while ago, but didn't think about other categories 😅 I definitely didn't touch objects, so it's interesting... will look into it
Ah, as in ModID token is used in the i18n key, makes sense how I missed it
This is perfect thank you!
I don't get what I'm missing
yeah. ModId is just what was used an example, but any token should be banned from being in the i18n key
including dynamic tokens
so assetRequested and its e.LoadFrom are responsible for loading the asset into the content pipeline right?
then why oh why does it work once and then tries to happen twice more and breaks if it should get invoked only once to start with
it breaks at the end of the first instance of my loop, doesn't even allow it to progress past the broken animation
its really difficult to give exact answers without a) an actual description of what you mean by "breaks" and/or b) the code in question
breaks meaning: in game the animation plays once, it then stops at the last frame and completely stops npc ai and my code, in SMAPI it always shows the error of file not existing twice after that
there are several flavours of nonexistent file errors. so we would need an actual log and again the code in question
But tbh, it can be easily fixed if someone inputs the optional CustomToken, since it'll replace the default keys anyway
i wouldnt call that a fix so much as a workaround! what if i dont want a custom key
dont take that as me demanding a fix for it toh. i dont use the i18nifier and its already a good enough tool, saying "just put a custom key to fix it" is well within your rights 
though, a custom key still breaks with {{ModId}}Text i think?
Here the one example i got for loading texture in asset requested
Well yeah 😅 I'm still intending to look into it when I have time (shouldn't be too hard)
question: recipes can't do the "flavored" thing that machines can, right? like if i have it accept any of an item type, it won't prefix the result with (item name) thing
im 90% sure they cant but i just like to be sure as always
It shouldn't?
As in with just removing the _?
It's slightly strange bc it's constructing the path but u hope u get it
private void Content_AssetRequested(object? sender, AssetRequestedEventArgs e)
{
if (e.Name.IsEquivalentTo("HaleySprite_Test1"))
{
e.LoadFromModFile<Texture2D>("Assets/HaleySprite_Test1.png", AssetLoadPriority.Medium);
}
}```
this is the most basic I could have done to even try getting it to work
Yes u need at least this much 
and then I just use npc.Sprite.LoadTexture("HaleySprite_Test1");
yeah for Objects (i didnt check the others) if i make the key of the object {{ModId}}_MyObject it works fine, but if i do {{ModId}}MyObject it is broken with or without the custom key being preprended
it turns it into e.g. {{ModIdMyObject.DisplayName
This is correct. Can't be done outside of machines unless someone has coded a solution in C# somewhere.
No set the textureName

dang.
huh
Sprite.textureName.Value = "HaleySprite_Test1"
Gotta do it like this for multiplayer reasons
and then I assume UpdateSourceRect should update it
If it's a prefix like in object then yeah, it wouldn't work... I really need to looks into objects, cause I have no clue why it even ignores {{ModId}}_ specifically in the first place 😅 Maybe I just started fixing it and forgot to finish.. 
Source rect has nothing to do with tx beyond using the rectangle
accidental features are almost as annoying as accidental bugs sometimes, so godspeed 
wait forget abt that Im not thinking clearly no more-
tf I meant update, assigning a new value is instant
(also dont forget Events also ignores ModId)
though strangely it breaks differently when you remove the _
if you remove the _ and make it {{ModId}}MyEvent, the key becomes the first command in the event, which is the music name

"{{ModId}}3910674/f Shane 1000": "shaneTheme/-2000 -2000/ ... becomes shaneTheme.0 for example
okay but it still doesn't solve my problem
the only thing it did is that now it throws the error 4 times instead of 2 lmao
where do I post it?
!log
Important note: Your computer username may appear in the log. If your username is your full name, please be aware of this before uploading it.
Please share your SMAPI log file. To do so:
- Open this page: smapi.io/log.
- Follow the instructions at the top of the page to upload the log file. (Don't copy & paste from the console window!)
- After uploading, it will show a green box with a URL to share. Post that URL here.
Please do it even if you don't see any errors. This has useful info like what mods and versions you have, what the mods are doing, etc. If the issue didn’t occur in your last session, please load the game to the point where the issue occurs, then upload the log.
do I upload the entire log or just the error message
Entire log

Need the actual file not the console window
give me a moment gotta disable some mods
I'm not gonna judge u for lewd stuff, but you should be testing on a minimal mod list anyways
I was too lazy to get a new save file
and so far I haven't done anything that could invade other mods
we really do need to see a log to help you any further
It's less about that and more about other mods affecting you
Plus faster load times with small list
true
I am also pretty confused about the goal of your mod anyways
What are you hoping to achieve with replacing the texture on the actual NPC? It is probably bad for compat
I want to add new animations
for new activities I'm doing, but that part doesn't matter for now

hi logo!
Hi, iro!
The new activity part is concern tbh, NPC path finding is cursed
that's a whole another load of crap I'm dealing with
I doubt it has anything to do with a file not loading properly
I think it's quite a bit easier to hide original NPC and then use a new entity for the new stuff
we really won’t be able to tell until we get that log, though…
Log Info: SMAPI 4.1.10 with SDV 1.6.15 build 24356 on Microsoft Windows 11 Home, with 46 C# mods and 32 content packs.
Suggested fixes: One or more mods are out of date, consider updating them, SMAPI is out of date, consider updating it
I looked at it myself and it reminded me how much random stuff I have there
also wth a new smapi version
Im trying to make the mega house but it doesnt even get shown on the map, i made it narrower as it wanted but still nothing
hmm, do asset names not need at least one part of the path before them? like Maps/Whatever etc
also it’s very hard to tell when you test a mod while having so many unrelated mods, like chu said. it’s best to test literally with only your mod and its requirements (if any)
Back in October (#making-mods-general message) I ran into an issue with my single smol event not triggering. The fix at the time was to add trigger actions.
All this to say...the event doesn't trigger at all for existing saves.
events.json: https://smapi.io/json/content-patcher/1e6cf6334b1a4dfc9f1b6f8f4c578f84
content.json: https://smapi.io/json/content-patcher/91c2a06df6d94fed91248199541353e6
I’m wondering about the use of both When conditions and event preconditions here
is there a specific reason to use both?
That was the suggestion at the time
what do you mean exactly? I might have tried that already
Or I misunderstood completely
if an existing save already has both a big coop AND a deluxe coop, they will get both mail flags at the first DayEnding, and then neither patch condition can be true
So originally what I wanted was for the mailflag to trigger if someone had built either coop
But that didn't exist because of escaping shenanigans or something
So I had to work around it
(but also unless you’re using the mail flag for other things too, I think you can actually use GSQs directly in event preconditions now)
(which may help you work around all of this)
if both types of coops should lead to the same mail flag, they can just both add the same mail flag, no need to put a 1 at the end
I have no loyalty to one way over the other, I just want the event to trigger.
like, shouldn’t this asset be Sprites/HaleySprite_Test1 or whatever instead of just HaleySprite_Test1? genuinely asking, I’m not sure
It's not important
ah, ty chu
I tried it already and it was the same
i think if you took an existing save that did not have both types of coops, itd work fine
Anyways did you register AssetRequested
elaborate on "register"
and the reason it works with a new save is bc you're not gonna be able to miss triggering the event between building a big coop and going to get the deluxe
so you'll never have the chance to have both flags at once
What would be the most efficient way to fix it?
or, well, you might miss it if you slept on ginger island
or anywhere besides the farm
(may I ask why you’re doing this with C# and not a content pack with spacecore animations, anyway? that just seems so much easier)
because I need to trigger those animations in specific cases
remove the 1 from your mail flag, both trigger actions should send the EggNodeMailFlag mail flag. then remove both HasFlag conditions on one of your event patches and remove the other event patch entirely
and I cant use content patcher yet
I still have no idea what's the difference between your thing and schedule anim but not gonna stop you 
I’m confused about why you can use c# but not content patcher
You need to actually register your event handler to the event
Thank you, Button! 
because I learned how to code beforehand and the rest is wiki, decompile and right here
Rn i see in the trace log that your texture got loaded once in a random spot which makes me think you just called the method
also, the HasSeenEvent flag is not needed. an event wont play if you've already seen it.
This gif has 0 useful info to me
Do you understand what I am trying to explain or not?
nope
ideally your event will always exist in the games data
Thank you again! 
well the only two usages of the word "register" are bound to edit order and priority so I still don't know what it means
Did you look at the example data edit
Or either example i linked
Ah it looks like the official microsoft term here is subscribe to event
The thing i been trying to ask is whether you did this bit
you can also do a more direct version by replacing the mail flag precondition with GameStateQuery Any \"BUILDINGS_CONSTRUCTED All \\\"Big Coop\\\"\" \"BUILDINGS_CONSTRUCTED All \\\"Deluxe Coop\\\"\" I think logo and removing the mail flag if that ends up causing you issues
iirc that was what we originally tried to do last year but
it was in the trigger action
Yeah, that's exactly what we tried to do
and it was Escape Hell
yep yep
in fact i believe back then was before 1.6.9? which i think fixed something to do with GSQ precondition escaping
I think those escapes should theoretically maybe work possibly?
I'm 99% sure that it was fixed in 1.6.9
But I am not very knowledgeable about this bit of modding
Which is why I'm here 
"The G precondition parsing isn't properly quote-aware, which is fixed in the next 1.6.9 beta patch. Thanks for reporting it!"
Im getting really confused, do you mean this? this.Helper.Events.Content.AssetRequested += Content_AssetRequested;
so yah the GSQ precondition literally was not an option at the time 
Yeah ok 
So now I could add it directly to the events json and skip the whole trigger action/mailflag bit!
I’m not sure if this would need triple or double \ but pathos says double so listen to pathos
you can yes
yeah, that's subscribing to the event AssetRequested so now your method Content_AssetRequested will run whenever the AssetRequested event is triggered
Thank you for the help, iro & Button! 
this page might be helpful to read if you're unfamiliar https://stardewvalleywiki.com/Modding:Modder_Guide/APIs/Events
(in fact you can probably just copy exactly what Pathos wrote in that message linked)
(mostly button
I’m here to learn things)
(that was my plan lol)
just make sure when you copy it that your text editor doesnt auto add any more slashes
It's not, just yelling at me for not abiding json schema
Then as a test what happens if you do patch export HaleySprite_Test1 ?
I also need to know if u did the subscribe to event part in Entry or some other time
in entry
would it be possible to see your code? via github preferably if it’s long
(Entry){
this.Helper.Events.Content.AssetRequested += Content_AssetRequested;
}
private void Content_AssetRequested(object? sender, AssetRequestedEventArgs e)
{
if (e.Name.IsEquivalentTo("HaleySprite_Test1"))
{
e.LoadFromModFile<Texture2D>("Assets/HaleySprite_Test1.png", AssetLoadPriority.Medium);
}
}
What is (modEntry)
this is everything I have on the assets
that's just my simplification to show thats in modEntry because I didn't want to copy the entire class and the shitload of junk in it
but is it in the entry method?
chu asked to make sure its in Entry, not ModEntry
oh yes sorry
Ok sure ill trust that it's the Entry method specifically
So what happens if u do this 
where do I put it?
isn’t patch export only for content patcher, chu?
it can export any asset
ah, I see
in the SMAPI console window
if it cant figure out what an asset type is, you can also tell it what type it is to export it as
But yeah I'm just puzzled by why it does attempt a load, but only afterwards
I'm surprised this turned out to be something more interesting than me just being dumb
tbh idk if this is the same for you guys but I struggle to think in code snippets
I can only really start spotting issues when I see the actual code base
Most bugs are someone being dumb somewhere but there's no shame in that
I'm asking dum question to probe for the dum
we have all been dumb and will continue to be
Where can I find the sprites for the fishing spot bubbles? The ripples look hardcoded as part of the water, but the rest look like regular sprites
you know me, I have never asked a dumb question in my life 
i would guess Cursors first
[Content Patcher] Exported asset 'HaleySprite_Test1' to 'C:\Program Files (x86)\Steam\steamapps\common\Stardew Valley\patch export\HaleySprite_Test1.png'.```
either way good luck looking for a mostly transparent ring that blends into the bg
Nice so this means you did all the content loading parts correctly
It was right there, thank you
can we see the code where you’re using the sprite?
Next thing to check is how are you acquiring Haley
Does anyone know how to change the name of an NPC in all the game's dialogues, whether in events or conversations with other NPCs? It's driving me crazy searching paragraph by paragraph for Sam's name in all the game's dialogues.
it would require C# if you want to do it for everything I think
Yeah check the J Club
The truth is that this is my first mod and I don't even know what I'm doing.
What's the goal here anyway, replacing Sam with another character?
yes
You sure you don't want to just make a new npc?
theres no way without C# to do it in entirety
We r just warning you, it's about as much work to replace npc as to create new one
I managed to replace the portraits but the rest is becoming too difficult for me.
but you can do some of it with CP by editing Data/NPCNames
or Strings/NPCNames i forget
meaning? Ive already shown and corrected this one npc.Sprite.textureName.Value = "HaleySprite_Test1";
but other NPCs mentioning Sam will have it written directly in their dialogue
Yes, how did you obtain the npc instance?
(I'd wager it's more work because of all the other references to Sam)
Actually my plan is to replace all the singles with BS characters
Well sure i think my point stands
If that's my problem, I'm going crazy looking for dialogue after dialogue where they mention it to replace the word "Sam" with "Fang"
oh that, Game1.player.getSpouse()
well that is unfortunately your only option to do it
the only instance in which I can have the npc in one place and not mess with things
also why I was too lazy to create a new save file
Well u could have used getcharacterbyname
But it does sound like you acquire the actual npc instance yep 
that I do and theres no doubt abt it
I'll also assume not multiplayer
what method/part of the code are you doing this in? I assume not also in Entry
definitely not currently
and I can't link it to any other mod,? I heard there are mods that can replace a single word in the entire game
no, what I sent was all related there was in entry
probably not, but feel free to check those mods for yourself to see if they can let you do that
How did u acquire a spouse before loading into a save
I’m confused, was this line in the Entry method or not
I get the instance and try to load the texture from another class
entry is only for the event hook
okay, so where do you do it?
(this is why seeing the full code would be helpful, even if you think most of it is irrelevant)
I didn't, as dumb as it sounds almost all of my code (except for some prefix experiments that I should have removed long ago anyway) kicks in on warp to farm
New quote added by atravita as #6469 (https://discordapp.com/channels/137344473976799233/156109690059751424/1390108072361459894)
New quote added by atravita as #6470 (https://discordapp.com/channels/137344473976799233/156109690059751424/1390107850453287005)
believe me with the mess I have rn you're better off with snippets and explanations
we really, really aren’t…
Just rewrite everything and it'll magically work ez
that is not a bad idea at all tbh
I do find the timing of everything somewhat puzzling tho, will go try stuff and get back to u
most of us are pretty decent at reading code, but if we only see snippets we literally cannot know if something is wrong just outside of what we’ve seen
sometimes it’s as simple as an unexpected typo
ermm showFrame suddenly stopped working
it worked in my other events but not in the one im currently writing

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.
mod that change everyone sprite to assets/Clint_Winter.png
everything is boncher lite
merely everyone, and only on demand
dont as why theres translation class in here its not important
can I have a copy of your boilerplate code please, mine’s awful
yours is so nice /hj
u can install it with dotnet new --install path/to/sdvmod
but i imagine u dont want mushymato to be in there
Somehow i didn't register that everyone was clint
do too
and the $(MSBuildUserExtensionsPath)/sdv.props is also for some never to be committed bits
@prisma sky anyways pls take look at this and compare to ur own stuff
wait didn’t you have a bit that replaces the username with mushymato
or am I just not finding it
very fair
why not make your own dotnet template
i find it fun to create and customize my own
like a lil dotnet zen garden
hand me down dotnet template, gross /j
That way leads to shared libraries
Iro knows about shares libraries
why can’t I just use my sbt template I made in uni. shouldn’t they be interchangeable /j
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.
heres the sdv.props bit
its not in the template due to reasons 
never have I disliked your decisions more than my many failed attempts to compile them
ideally i want ppl to be able to clone my repo and just build it without issue, and this stuff potentially cause issue
(I’m still convinced the version currently in the alpha branch of your github just doesn’t compile)
iro the secret is to just
yoink it out
and bonk until it works 
idrm if i told atra but gima is here now https://github.com/Mushymato/GIMAC
atra claims it should compile as is
yea well i dont trust ppl who use VS
not even pathos repo compiles with no change for me
I seek to make three dumb decisions every day before breakfast
I’ve even tried it in VS! it didn’t even compile then!
no offense to anyone it's just how it is being second class citizen
btw just to make sure, so when I assign npc.Sprite.textureName.Value I dont have to use npc.Sprite.loadTexture
Im getting bamboozled
I'm trying to fix this mess of code a bit
hm
textureName is a netfield, and setting it trigger the field changed which loads texture
what I just maybe found out is silly to say the least and the error logs completely misguided me, I feel like the biggest issues might be caused by the animation itself
I did something
I got rid of the error messages somehow but the npc sequence still breaks the same way

it's possible that you dont have enough frames
Hi um one of my events is not working. It straight up stops recognizing event commands even though the same commands are working in every other event
Does AddItem in an event show it over the farmer's head, or is it just AwardFestivalPrize that does that?
And it was working before it just stopped randomly working now
Did you change anything in the code at all? Something not closed correctly or a string being invalid can break events pretty easily.
Or a precondition change
I have 4 frames, and 4 frames accounted for in the animation list
i didnt touch anything else from after i tested last time
since this is an npc they'll try the 16 frame walk at some point
I'm adding my own animations, not replacing them
yes but AnimatedSprite still has expectations about spritesheet
thats the class u are using
the reason why i suggest temporary animated sprite is bc tas don't have all this stuff
I mean for them to go back to their original spritesheet after it finishes
@prisma sky You leveled up to Cowpoke. You can now speak in our voice channels and share images in all channels!
I'm pretty sure someone told me last time to use animatedSprite instead 
well either is possible, but yknow NPC are just cursed in many ways
faking it to do ur own thing is 100% less of a hassle 
while trinket tinker wasn't made for this, it is quite good at faking other entities 
and to do this conveniently i just made my own sprite frame class to draw with
yk what I'm just gonna
public static void testAnim()
{
string backSheet = spouse.Sprite.textureName.Value;
spouse.Sprite.textureName.Value = "HaleySprite_Test1";
List<FarmerSprite.AnimationFrame> testSheet = new()
{
new FarmerSprite.AnimationFrame(0, 200),
new FarmerSprite.AnimationFrame(1, 200),
new FarmerSprite.AnimationFrame(2, 200),
new FarmerSprite.AnimationFrame(3, 200),
};
spouse.Sprite.setCurrentAnimation(testSheet);
spouse.Sprite.loop = false;
spouse.Sprite.endOfAnimationFunction = (Farmer farmer) =>
{
spouse.Sprite.textureName.Value = backSheet;
canContinue = true;
};
}```
just tell me how cursed it is 
did u do animateOnce at any point
no, you need itemAboveHead for that i believe
looking at NPC.update, animateonce gets called after some other stuff
I'm trying for the effect you get when you open a chest in the caves for instance, or when you get the sword, which seems to be done with AwardFestivalPrize, but since that looks like it will be moved away from in the future... :/
Trying to futureproof my event a little
i'd try making the custom sheet haley vanilla + your 4 frames at the end
write down the numbers ofc 
may also need to Halt the npc first
as far as I understand the issue is that the endOfAnimationFunction isnt happening
does it even work for NPC's?
as far as i can tell only farmersprite uses that
imma go crazy
Animation frames might also have associated delegates?
How does Clint do his hammer noise
I'm in here so much tonight but does anyone know how to add an object on the ground that can be picked up? I want to have a piece of cloth on the ground you can take once and that's it
that might fall under spawnables? which i believe need a framework, unless you can somehow set it up as a forageable or something. other people know more than me about this though
just an educated guess but wouldn't it fall under the same category as robin's axe and linux's bucket?
u can maybe use a lost item quest
hmmm
i did look at lost item
its just that this isn't a lost item
like there wouldn't be anyone to return it to
you might at least look into how the item is rendered into the world
you could replicate the part that makes it appear and interactable, no need for the quest shenanigans, but apperantly Im a crazy masochist so thats what I would do
i do not know how to do that nor do i want to figure it out LOL
i think i'll just have emily send some mail
oh wait i'll just do a conversationtopic
if you're trying to do it via CP, your options for forage (a.k.a. objects on the ground) are the Data/Locations forage system, an FTM content pack, or spacecore's spawnable system
augh yeah thats too complicated
it's a decent amount of set up for a once-only item to pick up, yeah
on my issue @lucid iron do you think there is a way to check when the animation finishes?
if all else fails I will go to the dark side and use the tas
animateOnce returns true when it's done
but like, you do not control the update loop for NPC
have you considered looking at this NPC.update method i keep bringing up 
my brain must have skipped it but now I do
i dont think tas is the darkside anyways
theres even a thing to attach a TAS to a Character
its quite convenient, but ultimately you should really think about how you want to organize this mod
at least I'm exploring different possibilities...
I have a tas commented out already but someone told me to try this way
thats the most important part™
[SMAPI] - your project name yeah
any tips for what I'm looking for?
the bit that handles CurrentAnimation?
unrelated to this though, are you sure whatever it is that you want cannot be a schedule animation?
yes.
how come
i don't think i can help you very well when the desires remain vaguely defined
if (Sprite?.CurrentAnimation != null && !Game1.eventUp && Game1.IsMasterGame && Sprite.animateOnce(time))
{
Sprite.CurrentAnimation = null;
}``` this is the only thing abt currentANimation
yea u can see where animateOnce is being called in the update loop
because the animation is gonna have to play at random points dictated only by the player
which is also why I'm doing it with spouses for now, they don't leave the farm
most of the time
i suspect the fact that it's spouses might be causing a separate set of problems
their behavior is quite hardcoded
you can always overwrite their bahaviour
if it's a spouse, that definitely explains why it can't be a schedule animation, lol
for now I didnt have problems as they stand on the porch most of the time
but this description is still pretty low level in terms of what you want to achieve
what's the high level goal here 
Patio animations are the least troublesome for spouses
wait nvm I forgot I literally did a harmony patch to make them stand there 24/7 overwriting marriageDuties
oop
its not that deep when Im working with concepts now
the patch makes them not do all the crazy hardcoded shit, and then I can do whatever I want with them afterwards
its supposed to be part of a bigger npc initiative but I needed test subjects
and no Im not gonna overwirte schedules that would be a disaster for everything and everyone
if u r moving around npc to where they r not supposed to it is already disaster 
I think I said it once already but I wanted to utilize it in a new setting I will create possibly
but perhaps the disaster is goal here
test subjects
the last time you said you want to make some sorta trpg
that could be very much true


cursors ofc

