#making-mods-general

1 messages · Page 334 of 1

tepid plover
#

i edited parts of certain sprites because i didnt like how desaturated it was, but im not going to distribute that

vernal crest
#

You'll get people being very unhappy with you if you advertise that you're making a mod that really violates what an OG modmaker wants for their mod (usually pretty gross and offensive stuff), whether personal or not, but outside of that I doubt anyone is going to be upset.

tepid plover
#

i also frankensteined someone's xnb hair mods a long time ago into my own hair replacement mod with CP 😭

#

its fine

last badge
#

Fair lol I just didnt want to be a rude by doing so. I do plan on talking to the original mod authors if possible at some point and will GLADLY hand over my files if they want to post them. I just wanted to make one giant bundle file to get every portrait in this style to work together >:D

steel plaza
#

there is no error and everything is loading properly, the paint menu is showing but the colors are not changing T^T

vernal crest
ivory plume
#

There's no PaintColorRegions field; did you see that somewhere?

lucid iron
#

Yeah the mmap feature wouldn't be able to replicate this exactly 3sSmolMiku

#

I guess what you can do is, use the trigger action version and have a LocationChanged trigger that makes 10 fireflies at select places

#

Can random the tiles a little bit but it'd all be fairly manual

steel plaza
vernal crest
steel plaza
#

i tried with both the unedited and edited still dont work lol

#

idk if the one with complication is my code(no error and everything is loading properly) or the game

left nova
#

@ivory plume Is the tree texture supposed to reload on location change? I encountered a problem where the texture in WildTrees reloads like that whenever I put RANDOM GSQ in the Condition field. The wiki doesn't mention anything about reloading on location change, so I assume it is a bug?

sweet wharf
#

So, I'm having a bit of an issue with my content pack that I made, I edited Shane's hair color and I wanted to add the portraits and sprites to the game, but every time I try to load it, SMAPI tells me that my assets folder is empty even though I have the new portraits and sprites, if anyone can help, please do

ivory plume
ivory plume
steel plaza
#

is this correct this is how i load the paint mask

#

this is the paint data

ivory plume
steel plaza
ivory plume
#

Normally it's based on the type/ID (which is {{ModId}}_TrailerCabin3 there), but technically it's the texture asset name + _PaintMask if you have a custom texture asset name or skin. So if you have no skins, that should be correct.

steel plaza
#

this the thing that i need to change right?

ocean sailBOT
#

Log Info: SMAPI 4.2.1 with SDV 1.6.15 build 24356 on Microsoft Windows 11 Home, with 31 C# mods and 21 content packs.
Suggested fixes: One or more mods are out of date, consider updating them

ivory plume
ivory plume
# sweet wharf

So the error is:

Skipped mods
--------------------------------------------------
   These mods could not be added to your game.
   - [CP] Shane Black Hair Blue stripe\Assests because it's an empty folder.

Which means SMAPI is trying to load your 'Assests' folder as a mod. Do you have the manifest.json file in the [CP] Shane Black Hair Blue stripe folder?

left nova
sweet wharf
vernal crest
# sweet wharf

In addition to what Pathos said, your folder is called "Assests" with an extra "s" before the "t".

steel plaza
#

okay i'm having a look through my code:

#

this needs to have a value right? not just null

ivory plume
uncut viper
ivory plume
#

(Oh right, true.)

vernal crest
ivory plume
steel plaza
#

oh ok thanks thanks

#

last question before i sign off, should the pixel size of the mask be the same as the size of the building texture?

ivory plume
vernal crest
# sweet wharf

Neither of those files are actually json files. They're manifest.json.txt and content.json.txt. Try turning on file extensions and you'll see what I mean. And then once you've done that you can rename them to remove the .txt bit.

ivory plume
#

(To enable file extensions, click View > Show > File name extensions at the top.)

vernal crest
#

I think it's under View up the top but I'm not - there we go lol

ivory plume
#

(I wish Windows didn't hide them by default, I feel like it causes more issues than it solves.)

vernal crest
#

I'm not very familiar with Win 11. Only ever seen it in tech support screenshots.

steel plaza
sweet wharf
vernal crest
#

That is usually what happens when you start making mods. Please share your new log. Not via screenshot - please use the log parser again.

#

!json However, the issue is that your json syntax is wrong. If you upload it to the json validator it will tell you where the error is. If that doesn't help you can share the link here.

ocean sailBOT
#

JSON is a standard format for machine-readable text files that's used by Stardew Valley mods.

If you need help with a JSON file, you can upload it to smapi.io/json to see automatic validation and share the link here.

When making mods, it's recommended to edit your files in a text editor with JSON support, such as VS Code, Notepad++, or Sublime Text. These programs will check for syntax errors.

steel plaza
#

okay i found a mod called "MorePaintMasks" and in the assets folder it hat a .xcf file, what is the file?

ivory plume
blissful panther
#

(That's a GIMP project fil-

#

(Damn it, Pathos. Too fast. SDVkrobusgiggle)

lucid iron
#

Judging atra for leaving that in main mod

vernal crest
sweet wharf
vernal crest
sweet wharf
#

I got it to work 🥳

uncut viper
#

so i know the SaveLoaded SMAPI event goes before the SMAPI DayStarted event, but does it... not go before the in-game DayStarted trigger? cuz this trigger action i have is apparently trying to run before the save is even loaded according to SMAPI (and of course failing, because it relies on data collected during SaveLoaded)

final arch
#

(use Visual Studio Code and set it to jsonc in the bottom left)

uncut viper
# uncut viper so i know the `SaveLoaded` SMAPI event goes before the SMAPI `DayStarted` event,...

changing it so that instead of using SaveLoaded, i use the specialized LoadStageChanged and do my work when the load stage is "Loaded" (which is right before "Ready" which i assume is equivalent to SaveLoaded?), and it works correctly now, with the trigger action being run after LoadStageChanged but before SaveLoaded. this is like... fine i guess, especially since i think im gonna refactor this to not use either of those SMAPI events anyway, but is it just common knowledge that DayStarted trigger actions run before the SaveLoaded event (which runs before the DayStarted event) that im just only now finding out

brittle pasture
#

peeped around smapi's source and it seems SaveLoaded is raised directly before DayStarted (the smapi event) is

lucid iron
#

but what is the mod hook it's using?

#

ModHooks.OnGame1_NewDayAfterFade?

uncut viper
#

i know for sure the SMAPI event order is like that, i just also always assumed that DayStarted event = DayStarted trigger, too

lucid iron
#

yea me too blobcatgooglyblep

uncut viper
#

but i couldnt even find like, what was calling trigger actions in the middle of save loading functions anyway

#

(i didnt look TOO too deeply into the games update loop, though... theres a bunch of it)

brittle pasture
#

(we should definitely edit the wiki to add a little more info on when exactly the loading/day event runs, stuff like DayEnding running before newDayAfterFade/etc.)

patent lanceBOT
brittle pasture
calm nebula
uncut viper
#

is it even intentional that SaveLoaded happens after the DayStarted trigger though?

calm nebula
#

I kid

#

I can make more of a build system

lucid iron
#

i been assuming that DayStarted (trigger) happens after newdayafterfade this whole time

#

suppose its good that u added the morning trigger button

calm nebula
#

Same

uncut viper
calm nebula
uncut viper
#

i so rarely use SaveLoaded for anything in general, let alone something that must run before the very first DayStarted, so ive just never had a chance to notice before i guess

calm nebula
#

To salt that in too

#

(Morning pathos!)

vernal crest
uncut viper
#

Aba did help its their bug that made me find this

ivory plume
# uncut viper <@226803198218731520> is this how these SMAPI events are supposed to line up?

'Day started' means something different in the base game code (where it's used to initialize data for the day start) vs SMAPI mods (where it's used to react to the day initialization being completed). So if you need to initialize something before the game has finished its day-started initialization, you'll need to use a more specialized event like LoadStageChanged.

ivory plume
uncut viper
#

is SaveLoaded meant to come after that day initialization too, though?

ivory plume
#

Yep, SaveLoaded is just a shortcut for 'first day started after the save is loaded".

uncut viper
#

if its intentional and known thats fine, though i hope you wouldnt mind me editin the wiki for the SaveLoaded event to make it a bit clearer

#

since it mentions coming before DayStarted and people like me might also falsely assume the equivalewncy between trigger and event

ivory plume
#

Well, the wiki says "This happens right before DayStarted" (where 'right before' is meant to indicate immediately before, i.e. the same game tick).

uncut viper
#

but it doesnt say that DayStarted != DayStarted (trigger)

lucid iron
#

yea the smapi event DayStarted and the trigger DayStarted r named same but completely different timing

uncut viper
#

the SaveLoaded event coming before the DayStarted SMAPI event is clear

#

what isnt clear is that trigger actions that run on DayStarted will run before both

#

despite sharing a name

ivory plume
#

Yep, clarifying that on the trigger actions page would make sense.

calm nebula
#

Could it be passed in?

opaque field
#

If I wanna edit a schedule that would be "Characters/NPC/Schedule?

uncut viper
calm nebula
#

Smth like SYNCED_Random %X_%Y

uncut viper
#

(id understand if so, since thats a rather more important page)

#

"Raised when the player starts a day, after either sleeping or loading" - trigger actions page
(to me, "after loading" would also imply "after SaveLoaded" SDVpuffersquee)

ivory plume
#

(If it helps, SMAPI applies the C# event naming conventions: started means after the start is completed, starting would mean before it happens.)

uncut viper
#

Raised after loading a save (including the first day after creating a new save), or connecting to a multiplayer world. This happens right before DayStarted, but after the game's own day-start initialization process; at this point the save file is read and Context.IsWorldReady is true.
how's that?

brittle pasture
calm nebula
#

Exactly!

#

You'll be doing it before I get home from the gym right?

#

(Yes, that entire conversation was in between sets)

lucid iron
#

i have great desire for formal syntax with passing X and Y to trigger actions and GSQ in general

brittle pasture
calm nebula
#

How do I write a mod feature between sets at the gym

#

That seems difficult

vernal crest
#

Learn to type with your toes

ivory plume
# calm nebula Smth like `SYNCED_Random %X_%Y`

I could look into that for 1.6.16. Keep in mind though: the risk of adding a base-game feature to support tree variety is that a future version of the base game might use it, potentially superseding the mod.

calm nebula
#

Something something briar rabbit asking to not be tossed in a bush

vernal crest
#

Ok I stayed awake for the DayStarted drama. Time for DayEnding for me /j aSDVemotesleep

calm nebula
#

(I am in the camp that likes it when the base game adopts a feature from one of my mods.)

#

It's an honor whenever it happens.

gray thunder
#

Does anyone know what these missing items are

calm nebula
#

Also less work on my side, especially now when I don't have the time to be able to maintain mods reliably anyways

#

Like.

blissful panther
#

And a "Whew! One less feature to maintain" thing.

lucid iron
calm nebula
#

I'm literally chatting with you guys ☆in between sets at the gym☆

left nova
#

Oh, so there's a chance that tree variety might become a base-game feature in the future? I'm hyped.

lucid iron
#

but u should make ur mod anyways Dokkan

#

gonna be a while if it exist

left nova
#

Oh no, I'm just tinkering with that feature, haven't drawn anything yet.

#

The main idea is making use of Tree Size Framework, which add height variety.

#

But since the RANDOM didn't work in both TSF and vanilla data, I stopped making it.

lucid iron
#

so if you did sync random, you would be able to random it on a day to day basis i think

calm nebula
#

Tbh realistically what I want is tree variety but persistent tree variety

#

Ie, this is tree variety 17 and it stays Tay until I cut it down

#

Yes. It stays Taylor Swift

#

Variety 17 has glitter boots

lucid iron
#

i guess maybe u can do something silly like

#

BETAS to write moddata

#

EMP to use the moddata as a token 3sSmolMiku

#

or u just PR this feature into tree size framework

left nova
#

From what I tested, SYNCED_RANDOM isn't 'per tree', the texture will change daily, yes, but all of trees will have that texture applied.

left nova
lucid iron
#

yea i think what you have in mind is closer to the animal skins feature

#

where the tree entity gets a texture picked on planting

#

definitely nicest to impl it via C# LilyDerp

left nova
#

Or wait for Pathos to add it as base-game feature.

brittle pasture
#

you can use AT

lucid iron
#

does at support the new trees yet

brittle pasture
#

dont think so

lucid iron
left nova
#

I don't think AT support GSQ.

#

And obviously not Tree Size Framework nor spaceCore animation.

lucid iron
#

anyways do u want this mod to exist i really think it is not that hard n fit for a beginner C# mod

left nova
#

I know nothing about C# (lol).

lucid iron
#

proposal

  1. hook SMAPI TerrainFeatureListChanged to add a new entry to modData to record the variant to lock down, it can be an index to WildTreeData.Textures, though it is annoying that theres no Id field to use here
  2. harmony patch Tree.ChooseTexture to always pick the variant that is locked down
#

prob also want some CustomFields thing to decide which variants to random between for a given season

acoustic compass
#

Hello folks! New to modding here. How does someone add more skins/textures to a new farm animal through content patcher?

#

reading the animal data page on the wiki and I'm still a bit confused

lucid iron
#

farm animal skins are stored in "Skins" under the farm animal entry

#

is shape like this

"Skins": [
    {
        "Id": "{{ModId}}_Skin1",
        "Texture": "Your loaded texture (or {{InternalAssetKey: skin1.png}}",
        // "HarvestedTexture" for things like sheep
        "BabyTexture": "Your loaded texture for baby (or {{InternalAssetKey: skin1baby.png}}",
    },
    // put more as desired
]
acoustic compass
#

OHHH okay!
I think I understand now

#

Thank you Chu EspurrHeart

#

also for reference, GSQ means growth stage right?

lucid iron
#

no it means game state query

#

its a system to check a true/false statement, such as checking what current weather is

uncut viper
lucid iron
#

some game data fields accept a string that it will parse as gsq, and usually fields like this are called conditions

acoustic compass
#

writing that down and saving the link, thank you

patent lanceBOT
#

@calm nebula: take a look (76h ago)

calm nebula
#

Remind me in 6 hours to take a look

patent lanceBOT
#

don't you have like a cell phone or something atravita? it can do the same gosh darn thing and then I can be lazy. but okay, I'm on it. (#6722814) (6h | <t:1749426644>)

gentle rose
#

honestly I wouldn't be surprised if atra didn't have a phone

devout otter
#

Hello! @ivory plume ! I'm led to believe that now is the right time to request features for the upcoming 1.6.16. In that case, I was hoping it could be possible to customize the money counter in shop menu?

clear turret
#

hey gang has anyone ever had an issue w/ macos where jsonassets correctly picks up the content pack but not the actual .json within it? mb if this is not the right chat to ask this in ❤️

late pewter
ivory plume
#

(I love that crow portrait though.)

brittle pasture
devout otter
uncut viper
#

(you should probably let whoever led you to believe that that there's a ways to go yet SDVpuffersquee)

late pewter
round timber
#

two cakes ☝️

calm nebula
#

Do we want to bet on 1.6.17 or 1.7 being the actual version number

#

Anywyas

uncut viper
#

are you purposely skipping 1.6.16 or is that a typo

ivory plume
#

(RIP 1.6.16.)

calm nebula
#

I was looking at it for a silly reason - I wanted the crow to have penny's other decor after her event 🙈

clear turret
round timber
#

Content Patcher

calm nebula
uncut viper
#

in that case i think probably 1.6.16

calm nebula
#

I'm betting it will be 1.7

lucid iron
lucid iron
uncut viper
#

i would think thatd just be a 1.6.16 mod author beta thread when the time comes

#

like the 1.6 alpha thread

lucid iron
#

I feel that's easier for you to look at that ppl pinging you at random places in discord

#

Yes but discord is move kind if fast for this isn't it

#

Whereas talk page is all sectioned off (usually)

uncut viper
#

it is, but if the entire thread is dedicated to 1.6.16 suggestions and stuff, then its all relevant

#

also can be limited to actual mod authors

lucid iron
#

tis true DokkanStare

uncut viper
#

one downside i will admit though is the lack of thread search

lucid iron
#

i wasnt around for alpha and we did not have a thread for 1.6.9 so idk what it was like

uncut viper
#

but otherwise imo a thread is much better

lucid iron
#

well pathos can always abuse junimo powers and make a channel if thats the concern yuniShake

uncut viper
#

thats true

lucid iron
#

it is weird that u cant just search within a thread tho discord pls

uncut viper
#

too busy adding scam vpn sponsorships

lucid iron
#

Idk if i have that many requests that r like, reasonable to implement in a patch version of game

#

Vs i just go make the mod

uncut viper
#

i am the opposite in that i have one request that i think is so easy to add and reasonable for the base game that i think it does not belong in a mod (aka BETAS where it would go) (its a CompleteQuest action)

lucid iron
#

well i do have more than zero of them some of which happened DokkanStare

half tangle
#

What would this CompleteQuest action entail, out of curiosity

lucid iron
#

CompleteQuest <quest id>

uncut viper
#

literally just calls quest.QuestComplete

#

or completeQuest() w/e it is

#

bc the existing RemoveQuest does not do that. it just deletes it

lucid iron
#

it would let you control quest stuff with trigger actions and thus achieve fancy objectives

uncut viper
#

so you cannot manually Complete a quest with trigger actions, which means Basic Quests with freeform goals are not usable via CP

#

well, you can RemoveQuest the basic quest ofc, but then the player is not notified that its actually been completed

#

and they dont get money from the quest

#

unless you do all that stuff manually

#

(and even if you did, they wouldnt be able to collect it from their quest log. also, they dont get a fancy Ding! sound)

brittle pasture
#

[[Modding:Index]]

ivory plume
blissful panther
#

I've done evil things.

iron ridge
#

Oh dear

blissful panther
iron ridge
#

How evil is evil

blissful panther
#

First my mods, then I just had to do SMAPI.

iron ridge
#

Thats not too evil
Cool, I would even say

blissful panther
#

But it works. The only downside is the reliance on the reference assembly repo (which is missing a couple of assemblies, so I had to temporarily make another one for testing).

urban patrol
#

someone streamed themselves playing my mod on twitch! i'm very happy but also very scared at being perceived

blissful panther
#

Oh, that's very cool!

#

Not so much the scared part, but the other part. SDVkrobusgiggle

prisma sky
#

how can I ensure my loop only continues after temporaryAnimatedSprite has executed and finished?

latent mauve
#

safest way is to set a pause after it

#

waitForAllStationary exists, but might cause unexpectedly long delays

prisma sky
#

the thing is, it's not bound to the farmer

latent mauve
#

?

#

Can you give a little bit more context, I'm confused as to what you mean by that.

prisma sky
#

the animation is tied to an npc, but it's not a schedule thing and has it's own code running in the background

calm nebula
#

this is in c#, isn't it

prisma sky
#

yes

latent mauve
#

oh good, I'm gonna let Atra answer then, because that's out of my wheelhouse

lucid iron
#

can you tell us what you want to achieve

calm nebula
prisma sky
#

hold on I might actually have an idea

calm nebula
#

anyways, just assign to the endfunction of your tas

prisma sky
#

huh, seems awfully convenient. Is there any documentation of this? the best I found was tas in events

#

which only includes the raw fields and flags

lucid iron
#

not really, its decompile

#

!decompile

ocean sailBOT
prisma sky
#

yeahh that explains it, I kinda hoped I wouldn't have to this time

prisma sky
#

it's not something I can initialize in the tas constructor is it? I have to define it right after I create it

prisma sky
# calm nebula

not exactly the most straight forward without documentation some more context would really help tbh

twin wadi
#

i want to get started learning c#, i do have some experience with coding but not a lot... are there any good online tutorials?

calm nebula
#

!yellowbook

ocean sailBOT
lucid iron
#

also in this file is TemporaryAnimatedSprite.GetTemporaryAnimatedSprite which u should use to get the pooled TAS

prisma sky
lucid iron
#

yea AquaThumbsup

prisma sky
#

does it like take the first tas (far as I've seen it's a list) so I don't have to bother with referencing it?

lucid iron
#

a list wdym

prisma sky
#

wait nvm

#

I was thinking abt something different

#

what exactly does this do then?

lucid iron
#

its like making new TemporaryAnimatedSprite

#

but u get one from the pool instead of constructing a new one

prisma sky
#

and what exactly is "the pool"? I also see it in code now and I would like to understand it

lucid iron
#

if u look at TemporaryAnimatedSprite.Pool u can see how it just clears any assigned field values to default

#

so that it is ready for reuse

#

to make TAS actually show up in a location u need location.TemporarySprites.Add

#

(there r other tas lists u can add new TAS to but this is most common)

prisma sky
#

yeah that's what confused me before but I realised

prisma sky
calm nebula
#

If you want an explainer

#

The Microsoft docs on ArrayPool are very good

inland cedar
#

from itemId and preserve index, how can I create that flavoured Item? for example 348 and 454 for Acient Fruit Wine?

opal oriole
#

Hello! Does anybody know how do I make an object appear only during a cutscene?

sweet apex
#

is there a mod i can place torches on top of fences and other items like sprinklers??

sweet apex
pine elbow
#

Is there a randomizer yet?

drowsy minnow
#

if i want to apply gift tastes to an item im creating how would i do it, like...what would i put in the content json

lucid iron
#

the gift tastes are per NPC

#

but you can assign some universal ones

drowsy minnow
#

ooo alright thabk uSDVpufferheart

plain sphinx
#

Hi there! Somebody know how to add AT textures to the Farm Island mailbox? I read in the manual that can be texturized but I failed trying to orz

brittle pasture
#

I think that one's a map tile right

drowsy minnow
#

i think so? personally it would make sense to me

#

since its apart of the farm house archetype i think

brittle pasture
#

so AT can't retexture it, you'd need to patch the island spritesheet

half tangle
lucid iron
#

you can ask kaito.kid things if you need help with it

plain sphinx
#

I was thinking the same -until I saw it mention in the AT manual- but maybe I misread it ;w; thanks you for your help!

drowsy minnow
prisma sky
lucid iron
#

Def is a data model

#

but its used to initialize the record here

#

internal sealed record TASContext(TASExt Def)

#

ik this code doesnt show it bc it is just a shared project for helper but i get TASExt and init a TASContext

prisma sky
#

data model? whats that exactly? Ik it's no longer even necesary for me bc I see that I just have to pass values into the getTAS method, but I'm curious if you don't mind

#

ohh is this like the json thing?

lucid iron
#

so to put what this thing is in context

#

this is a feature where people can make a temporary animate sprite happen by editdata target mushymato.MMAP/TAS with all these fields

#

after a content mod does all this i can get the values they put in by loading the asset, with the right data model

#

and then i feed it into a temporaryanimatedsprite Bolb

#

there r actually more fields that i havent defined (TAS has so many...)

#

eventually hope to cover all the useful things ofc

prisma sky
#

I see, so it deserializes the data that can be easily edited/expanded by content mods

lucid iron
#

yes tho the deserialization isnt done by me but content patcher Dokkan

#

from perspective of my mod i am just loading an asset from the content pipeline

prisma sky
#

well I haven't touched CP yet, although I did try implementing deserialization by code I'm yet to actually test this part

lucid iron
#

for smapi modding you can just use newtonsoft.json

#

but usually u dont actually need to do anything urself

urban patrol
ocean sailBOT
#

Log Info: SMAPI 4.2.1 with SDV 1.6.15 build 24356 on Microsoft Windows 11 Pro, with 16 C# mods and 1 content packs.
Suggested fixes: One or more mods are out of date, consider updating them

prisma sky
prisma sky
opal oriole
#

If I want to have a cutscene on a custom map, do I need to do anything besides setting the mod name in the target field?

uncut viper
#

if you're using the content pipeline you're not actually using CP either, things just happen in the background in the AssetRequested event

#

you'll need to load a blank.json to Data/Events/YourLocationId first before doing EditData on it

#

but after that its just the same as editdata for a new event anywhere else, just use your custom location id

opal oriole
#

thx!

prisma sky
#

quick question, does the tas use rectangle from xTile or Xna?

lucid iron
#

SDVgunther New framework mod from @uncut viper !

Custom Museum Framework is now released!

This is a framework for mod authors to use to create their own curated item display similar to the vanilla museum. Unlike the vanilla museum, however, Custom Museum Framework offers a lot more flexibility in how your museum is managed, what items can be displayed, and where to display them. Features include but are not limited to:

  • Author-defined donation criteria
  • Unrestricted item pedestal placement
  • Custom item pedestal interactions
  • Custom lost books
  • Museum quests
  • Museum-related triggers, actions, and queries
  • Full multiplayer compatibility

Feel free to take a look at the documentation to view everything that Custom Museum Framework is capable of. You're not limited to mimicking the vanilla museum one-to-one here!

Nexus Mods :: Stardew Valley

Create your own curated displays full of items donated by players!

#

tis good right

uncut viper
lucid iron
#

usually if u see a Rectangle it's the Xna one not the xTile one but ofc exceptions everywhere

uncut viper
#

thank you chu SDVpufferheart

lucid iron
#

just dont System.Drawing Dokkan

gaunt orbit
#

I hate that xtile has all its own special boy structs

lucid iron
#

is xTile actually for Xna

#

or is it meant to be generic

gaunt orbit
#

I think it's meant to be portable but tide only advertises desktop and xbox IIRC and xna is on both

uncut viper
#

Tiled/.tmx/.tbin itself works with a lot more than just XNA though

#

so probably good reason to not be limited to xna if you can reasonably avoid it i suppose

lucid iron
#

i thought xTile is actually for tbin

prisma sky
#

An object reference is required for the non-static field, method, or property 'TemporaryAnimatedSprite.GetTemporaryAnimatedSprite(string, Rectangle, float, int, int, Vector2, bool, bool)'
uhhh

uncut viper
#

shrugs

lucid iron
#

dottile migration when DokkanStare

lucid iron
#

did u use the wrong overload

#

theres one GetTemporaryAnimatedSprite that is indeed an instance method

prisma sky
#

I have to check but it is possible

#

those darn overloads always get me

#
public TemporaryAnimatedSprite GetTemporaryAnimatedSprite(string textureName, Rectangle sourceRect, float animationInterval, int animationLength, int numberOfLoops, Vector2 position, bool flicker, bool flipped)``` aha, found the culprit I think
#

thanks, it would take me way too long to realize that

prisma sky
#

well that's just my luck that I managed to stumble on the only one that isn't static

gentle rose
#

quill do you have an entire server for froge

prisma sky
#

is the one I need to use seriously the one with all the parameters of fields I don't use

#

yummy

patent lanceBOT
prisma sky
#

@lucid iron so I can assume that the pool() values are like "default" ? Since I have to pass all of those and for now I don't have a reason to mess with them

#

just looking for reference

lucid iron
#

yea things reset to default by pool

#

however u r using some overload of GetTemporaryAnimatedSprite that sets at least a few fields

calm nebula
#

Merp

#

When I get home you botto

prisma sky
#
public static TemporaryAnimatedSprite GetTemporaryAnimatedSprite(string textureName, Rectangle sourceRect, float animationInterval, int animationLength, int numberOfLoops, Vector2 position, bool flicker, bool flipped, float layerDepth, float alphaFade, Color color, float scale, float scaleChange, float rotation, float rotationChange, bool local = false)```
#

I think this is the same one you used

#

and as far as I see the only one I can use

lucid iron
#

yea but theres a public static TemporaryAnimatedSprite GetTemporaryAnimatedSprite() right

prisma sky
#

oh wait actually I see theres more that could fit

#

mann

lucid iron
#

thats y u gotta decompile game Dokkan

prisma sky
#

yeah figures... still overloads are a pain

prisma sky
#

the only one without parameters is the one that resets to defaults... right?

prisma sky
#

Im 99% sure, maybe, positive-

brave fable
#

i don't think you need to worry too much about which param list overload you use for this method, you'll usually end up setting a bunch of fields immediately after

brave fable
#

elements are reset when they're freed for use, and if no elements are free and the pool doesn't add a new element, an in-use element will be reset and given to you

brisk wedge
#

what information gets saved in a save file? Like if I edit an object's itemid, will that change still be present for the next time i open the game?

half tangle
#

What do you mean by edit an object's itemid? You can create a new object using Content Patcher and as long as your mod is present, then it will be as well.

brave fable
#

the answer is a lot! and it's mostly arbitrary. the only sure way to know which properties are saved is to either open the save file itself and see what's there、or decompile the game code and see which fields aren't marked with [XmlIgnore]

#

editing the itemid alone might not give the results you want, since it'll have a lot of other data saved from its lifespan, like the price

brisk wedge
#

I guess the context is that I'm in csharp trying to figure how out to deal with autograbber's placement action creating a chest but not setting the itemid

brave fable
#

is this vanilla behaviour, or your own?

brisk wedge
#

afaict the not setting of the itemid is vanilla behavior, i see it in the decompiled code, but i could be looking in the wrong place

brave fable
#

without the code in front of me, I'd imagine it simply calls ItemRegistry.Create("(BC)Chest") or something similar

brisk wedge
#

It does autograbber.heldItem.Value = new Chest()

#

hm both itemid and qualified item id are xmlignore, how does the game save items? like i would have though youd need that to recreate it on load or something

brittle pasture
#

itemId is serialized

#

ItemId the property is not

brave fable
#

yep, I should've specified that often there are properties with backing fields、where only the field is serialised

#

I see what you mean about the chest now though, that's simply used as an item container for all the grabbed items, it's not expected to be interacted with by the player at all

lucid iron
#

I don't think a Chest has to have item id

#

It probably serializes as -1

prisma sky
#

in the texture name do I have to specify anything other than the file path?

calm nebula
patent lanceBOT
#

ooo not sure if I can count that high but I'll give it my best shot!!! (#6723315) (96h | <t:1749775491>)

calm nebula
#

There are four vanilla chests

#

I wonder how extensible it is

lucid iron
brave fable
#

yeah the game absolutely does id checks on chests in normal circumstances

calm nebula
#

How many cats are in chat at the moment

brave fable
#

but this one's just being used as an accessory to the autograbber

lucid iron
#

2.5

calm nebula
#

More importantly. How many of y'all have cat pictures

prisma sky
calm nebula
#

Blueberry you can provide blueberry pictures

brave fable
#

oh no, you're not doxing me that easily

tender bloom
#

I ate some blueberries yesterday

#

Sadly didn’t take a picture

calm nebula
#

Look, you know that I'm a literal orange cat with a power drill

brave fable
prisma sky
#

my own

tender bloom
#

I remember passing a texture to a TAS was weirdly painful

brave fable
#

then you'll need to handle the asset load yourself! either with CP or with an event listener

tender bloom
#

I did it in Fireworks Festival

#

I just had to load it more than felt like was necessary

#

It’s not that bad, just more bad than I expected

brave fable
#

yeah it is for the actual ctor iirc, but for the pool getter it's fine

tender bloom
#

You can look at my code if you want, Fireworks Festival is on GitHub

#

Might not be the same thing as this tho from what blueb said

calm nebula
#

I think it's fine as long as you do it before you add the tas to the list

#

It's in post that make it hard

tender bloom
#

Loading a texture via CP or C# is not hard, to be clear

#

In CP it’s a simple load action

lucid iron
#

Just do AssetRequested then u good

prisma sky
#

holy parmeggiano I have to whip out another tool and hours just to see a 3 frame animation play out

brave fable
#

forgive the phone code, it's something like

this.Helper.Events.Content.AssetRequested += (object sender, AssetRequestedEventArgs e) {
if (e.AssetName.IsEquivalentTo("my funny asset name"))
e.LoadFrom<Texture2D>("my relative file path");
}```
#

which you can put in a one-time method like Entry()

calm nebula
#

Don't you have full on mods that are only in mod.entry

brave fable
#

yeah those mods have the same energy as people who live off the grid in a caravan

calm nebula
#

Blueberry, in my heart of hearts I want to be that person

#

In a van

#

In the desert

#

Enjoying a midnight coffee and a book

#

Between me and that goal however is just a couple million dollars of savings, easy.

brave fable
#

and the slight difficulty of getting coffee and books in the desert

calm nebula
#

Shhhhh

daring skiff
#

This took more effort than necessary.

#

(autopet pets)

#

Kids will now have a chance to pet/play with your pets, applying the auto pet flag (fake) that I'm still working out.

twin wadi
#

hi! i'm making an event, and idk how to format this type of question... answer0 will have a response but continues event with no effect, answer1 will have a response as well and continues event with no effect, but answer2 has a fork.

lucid iron
#

Sometimes doing it urself with spritebatch.Draw is all you need

brave fable
#

ah but that won't emit it in multiplayer on its own. plus it's generally good to use what's in front of you

calm nebula
#

Got it. Using my Tupperware and fork

prisma sky
brave fable
#

oh, maybe you don't need object sender after all

#

again this is breakfast phone code, not guaranteed to work out of the box hahah

calm nebula
#

Hmm

#

Is interpreting that wierdly

uncut viper
#

dont you just write (sender, e)

#

when writing it like that

calm nebula
lucid iron
#

Phone coding hours

calm nebula
#

I'm eating dinner chue

brave fable
#

all meals are phone coding hours

calm nebula
#

Not always

#

Lunch are work hours

brittle pasture
#

fixing that is an exercise left to the reader

prisma sky
#

yeah I'm trying to just thought it's funny

brittle pasture
#

I'd contribute but alas I'm on my PC right now so there's a good chance my code will be correct

twin wadi
calm nebula
brave fable
#

did you try with just (AssetRequestedEventArgs e)

#

inshallah we shall eventually guess the correct format

lucid iron
#

I always just make the ide give me the right signature

#

Something about anon event handlers rub me wrong

brave fable
#

yeah sadly we all have intellisense(tm) brain rot

#

letting ai do all our work without us learning...

uncut viper
#

im taking you guys out of my mod will

lucid iron
#

Button out there writing artisanal smoked handlers

uncut viper
#

id still like to eventually set up in my dotnet template somethin thatll search my assembly for a function whose name matches a SMAPI event and automatically assign it that way ill never have to worry about it again

#

but im limited to one such dotnet template improvement per mod

lucid iron
#

Button out there selling out the brand to Big Reflect

uncut viper
#

id rather sell out to Big Reflection than have to restart SMAPI again bc i forgot to assign my handler after writing it

lucid iron
#

Dats why i gotta start with the intellisense pls gib signature kyuuchan_run

uncut viper
#

YourEventHandler(object one, object two)

#

done

#

maybe YourEventHandler(object?[] params) if youre feeling spicy

#

(idk if thatd work)

calm nebula
#

My god button

#

Please. My heart

uncut viper
#

im very lazy, ok

#

if i could stuff something like that into my dotnet template in a sane way i would

calm nebula
#

I go away to hang laundry and this is what I'm greeted with

uncut viper
#

im a pioneer

prisma sky
#

question... you guys structure of implementing this is totally different from what the wiki suggests (and VS auto-completes)

lucid iron
#

coding is free

prisma sky
#

so like... why what where and when

uncut viper
#

please do not take my methods ive posted seriously

#

but the way blueberry initially posted and atra corrected is just different but still valid C# syntax

#

just a way of assigning a function to an event handler without writing a whole "public void etc etc() { ... }" thing

uncut viper
#

(not just used for event handlers, but in this context it is)

prisma sky
#

I see

lucid iron
#

heres the 1 time i did a load of some textures from mod asset

rigid musk
#

Oh button you released the museum framework mod... now I feel legally obligated to add a museum to my expansion SDVpuffersquee

uncut viper
calm nebula
#

Feel? You are legally obligated. Subject to §1.5.73.56

uncut viper
crude plank
#

Everyone should be obligated to make a museum now

rigid musk
#

Museum fun time

brave fable
prisma sky
#

haha I got it, I just retreated to the classic structure and the API docs, I'm gonna crack this tmr bc I'm eepy

brave fable
#

typically you wouldn't do that exactly if you wanted to remove the handler later (with -=, because it needs to be assigned to a symbol you can reference) or if the inline right-hand-side delegate definition were more than a couple lines long (for readability)

uncut viper
#

just remove all the handlers from the event SDVpufferthumbsup

proper bear
#

Im curious does anyone know how to make visual novel style portraits with the dialogue display framework

uncut viper
#

what do you mean visual novel style

proper bear
#

Currently i have just been borrowing the code from the bountiful beauties mod to get it to work in my game

prisma sky
#

and my poor class structure isn't gonna make that easy

proper bear
#

And I want to figure out how to do it on my own in a independent mod so I dont have to explain why I have a gooner mod in my game to people

#

By visual novel style i mean what i put in the making mods art channel

brittle pasture
prisma sky
#

that seems to easy to be true

brittle pasture
#

then, the content loader will call your AssetRequested function if my cool asset name hasnt been loaded and cached

uncut viper
#

everyone always uses "cool" in their example filler text. always "my cool asset name" or "my cool mod name"
where are the examples that say "my lame ass mod name"

brittle pasture
#

everything I touch is cool because I am that cool

brave fable
#

excuse me i literally used "my funny asset name" for this exact example

uncut viper
#

you dont count bc uhhhhh i didnt see it

#

😌

prisma sky
brittle pasture
#

yes

prisma sky
#

so having the event set up, after providing the name to tas it should somewhat work out

brave fable
#

yep! the TAS will also automatically free itself to the pool when it's done animating, leaves the map, or fades to alpha 0、so you don't need to worry about that either

prisma sky
#

I really need some sleep, thanks a ton guys have great days

uncut viper
#

not one to be discussed in this server

brave fable
#

don't you dare

prisma sky
lucid iron
#

ah sexytimes ok LilyDerp

#

you should ask mangupix about it bc they r preparing a big update of some sort to DDFC

#

perhaps u can be early adopter to whatever new content format they go with

brittle pasture
#

not related but DDF two caked itself right

prisma sky
uncut viper
#

its called mitosis

#

(... that was at selph just to be clear to anyone who wasnt around to see the messages get sent at the same time)

lucid iron
#

i say DDFC is more of a budding process

vernal crest
coral trout
#

Hi Pathos, I just return from some busy work days IRL to continue the Automate PR weeks before: https://github.com/Pathoschild/StardewMods/pull/1117

Most logic had been done but I stuck at getting all chest types for GMCM. All the Item in ItemRepo seems to be plain Object (as img embedded, noticed the len of petentialChestTypes is 0 then checked the repo item data)

I have not checked all game code related, guess that chest is Object in player inventory, and wiil be converted into concrete Chest type when set down to ground? So I can only come up with the idea to set down the item virtually to get the concrete type and use for filter(but it's indeed weird, and seems a bug maker) @ivory plume

uncut viper
#

its not a replacement for the entire schedule, its just a replacement for that specific piece in your summer schedule

ivory plume
coral trout
ivory plume
#

I assume so; you could try looking at a custom-chest mod's code to see what it does.

lucid iron
#

i think expanded storage is the main custom chests mod rn

twin wadi
#

this is pretty random, but does anyone know where the animation desc for marnie's laughing is? i believe it's triggered when you wear the lucky purple shorts, but ihnc where that could be. i checked Data/animationdescriptions.json

brittle pasture
#

that's hardcoded in C#, look at NPC.checkAction

coral trout
#

thanks ill have a look on their impl

twin wadi
brittle pasture
#

it's 33 and 34

#

looped 4 times

twin wadi
#

thanks! just 100ms each frame, right?

brittle pasture
#

180ms, except for the first frame which is 150ms

twin wadi
#

thank you sm!

haughty charm
#

@pine elbow sorry - removed your timeout - masked links/markdown text aren't allowed here until you reach a higher level!

pine elbow
#

I see. My bad, then. I will resend it without the masked link.

#

Hello. So I'm trying to make a conversion of this mod: Woomewoong's All Npc Portraits and Sprites (1.6 incomplete)...

#

But I am having a tough time "installing" the output as Stardrop is "unable to load" the mod.

#

Maybe I did something wrong, or missed some steps?

vernal crest
#

!json Can you share your json via the validator website linked below?

ocean sailBOT
#

JSON is a standard format for machine-readable text files that's used by Stardew Valley mods.

If you need help with a JSON file, you can upload it to smapi.io/json to see automatic validation and share the link here.

When making mods, it's recommended to edit your files in a text editor with JSON support, such as VS Code, Notepad++, or Sublime Text. These programs will check for syntax errors.

pine elbow
#

Okay, hang on.

#

And here is... for the content.json file. Idk where I can categorize it in the website.

vernal crest
#

That's the Content Patcher option

#

Your format should be 2.7.0 instead of 1.28.0

#

And you should not have the .xnb file extension in the Targets

brittle pasture
#

those are artifacts from the converters

vernal crest
#

The Target field never accepts a file extension

brittle pasture
#

I think the extension is fine?

vernal crest
#

Nope

#

Any extension fails

#

Oh, and they need to be Portraits/Abigail (for portraits) and Characters/Abigail (for sprites), not just their names.

brittle pasture
#

yeah, the converter requires that you organize the loose XNB files exactly as how the vanilla assets they replace are organized

uncut viper
#

(unless someone does a very bad thing and gives their asset a name with an extension)

pine elbow
#

I see. So the converter I used just did the conversion part, but I still need to do the organizing part, or...?

brittle pasture
#

so it can pick the Target field automatically for you

brittle pasture
#

since these are portraits you need to put Portraits before every character name in the Target fields

rough lintel
pine elbow
#

It is outdated and pre-1.6.

rough lintel
#

just replace those w new ones and save yourself half the work

pine elbow
#

I think the mod author hasn't made a version with 1.6 in mind (aka with the winter outfits).

brittle pasture
#

but since you didn't you'd have to put Portraits into Target yourself

pine elbow
brittle pasture
#

"Target": "Abigail", -> "Target": "Portraits/Abigail",

#

...or do what lani said, it's faster

rough lintel
#

nodnod

#

then just add the new winter fields to the cp version and tadah

vapid sonnet
#

proposal: gun mod

pine elbow
#

Woomewoong also made sprites for the characters, and there are alterations for these Cursors.png and townInterior.png files, presumably from 1.5.

round timber
pine elbow
#

Which would mean I'm gonna have to move stuff since 1.6 has more sprites in those files.

brittle pasture
#

I don't think 1.6 added new stuff to those files

#

could be wrong though, but the new stuff are in new sheets like cursors1.6

pine elbow
#

Ah, okay, then. But there seems to be a Korean text they replaced in the Cursors.png file, and my game is set to English.

#

I'll have to try and replace it with an English text version. I don't know how necessary is that, though.

round timber
#

you could just do a partial image patch rather than targeting the entire thing, that would fix that

pine elbow
#

Also, there seems to be two folders in the Content Patcher version's 'Portraits' folder: emoji_O, and emoji_X...

rough lintel
tiny zealot
#

1.6 adding a new file called Cursors_1_6 is a true masterstroke of teasing the modders /lh

rough lintel
#

like a sweatdrop, or an angry vein thing, etc

brittle pasture
pine elbow
#

I just replaced the KR text with the EN version via Photopea. Nothing much was moved in the sprites there.

#

So it was fairly easy. I'm examining the content.json of the Content Patcher version and there seems to be KR texts there. Hopefully they're not of concern?

round timber
#

depends on what it is, i guess?

lucid iron
#

if they r just LogName or // its whatever

devout otter
pine elbow
#

It's actually the sprite of Morris in the Cursors.png where he's with some Joja Mart employees congratulation the farmer on completing their route.

#

The banner above them says probably "SUCCESS!" in KR, so I reverted it to EN from the game's original files.

#

In the townInterior.png, I'll go change if there's any changes there for 1.6 and move things around if necessary.

#

Nvm, there doesn't seem to be anything new, just replaced two.

devout otter
#

Just a stray thought: most of portrait mods don't seem to edit Alex's mother, do they? And intro Grandpa even less so.

#

I guess they only appear once.

round timber
#

plus a lot of ppl skip the intro

rough lintel
#

^ im one of those people

pine elbow
#

I haven't noticed that yet.

rough lintel
#

also only a low percentage of players see the alex mom event so

#

that too

pine elbow
#

But based on Woomewoong's mod, they seem to have edited Alex's mother's sprite/s.

brittle pasture
#

(flashback to that one mod that made your grandpa a twink)

round timber
#

a what.

brittle pasture
pine elbow
#

Having trouble copy/pasting the image files to the Content Patcher's version's assets.

#

Gonna have to compare each of them if necessary, due to the 'emoji_O' and 'emoji_X' folders, when the XNB version doesn't even have that.

#

The extracted XNB-to-PNG files don't seem to have those emoji effects, so I assume they're for the 'emoji_X' folder mainly?

#

But then, what of the one for 'emoji_O'?

#

See, this is what's confusing me.

#

On the left is the 'emoji_X' folder, and on the right are converted assets so I can copy/paste them.

#

Does this mean, I have to manually add in the emoji effects for the version I'm going to paste in the 'emoji_O' folder?

devout otter
#

Honestly I'm not sure what you mean by "emoji".

#

Where's the emoji?

pine elbow
#

Is highlighted folder is where I was with the left side of the image above.

#

Here's the two-window screen like from above, but instead of 'emoji_X' on the left, it's 'emoji_O'.

devout otter
#

Well, then the XNB version doesn't seem to actually have emoji.

#

The CP version gives you a choice in the config.

pine elbow
#

There wasn't a config file, though. And I accidentally downloaded the CP version for Stardrop, which warned me that it can't load the mod either.

devout otter
#

config file only gets automatically generated after you load the mod in-game.

pine elbow
#

I downloaded CP version again manually so I can edit the main asset files before zipping it into a ready-to-use mod.

devout otter
#

If the XNB version doesn't have an emoji version, you can just ignore that part. Erase the Config part in the content.jsonand the remove all the When conditionals from the portrait loads.

pine elbow
#

Unfortunately, the conent.json has KR characters.

#

Should I translate them?

devout otter
#

That shouldn't matter. Every line that starts with // wouldn't be read by the game.

lucid iron
#

!json

ocean sailBOT
#

JSON is a standard format for machine-readable text files that's used by Stardew Valley mods.

If you need help with a JSON file, you can upload it to smapi.io/json to see automatic validation and share the link here.

When making mods, it's recommended to edit your files in a text editor with JSON support, such as VS Code, Notepad++, or Sublime Text. These programs will check for syntax errors.

lucid iron
#

u should get a editor that has json syntax highlighting, in particular jsonc support

pine elbow
#

@devout otter Ohh! I just realized, I guess the ones with emoji effects are optional? If I don't want any choice or option for that, I'll just plainly put the files in the 'Portraits' folder?

devout otter
#

It depends on how the mod is structured.

#

Basically you'd need to look into the content.json and look from where does it load the files.

pine elbow
#

There's a version for both, it seems. Guess I'm gonna have to make a 'emoji_O' version because the updated files only contains XNB for the X version.

brave fable
devout otter
pine elbow
#

Nah, it's fine. I'm kinda bored so I wanna do the O version. Comparing the two back-to-back, it seems Woomewoong is updating the portraits altogether.

#

Btw, is it okay to distribute these image files for reference?

vernal crest
crude quarry
#

i wanna make a mod how do i

#

simple mod i can give info on what i wanna do to know difficulty

round timber
#

youd need to tell the idea first, thatll affect how difficult it is

crude quarry
#

oh

#

child expansion mod

#

i wanna make it so penny, jas, and vince can have a "field trip" on the farm

#

along with making vincent asking to say something to you without penny or jas

#

then he says he likes jas (kindergarten romance, hear me out ok its not bad)

#

then the player says either

  1. You're too young
  2. You should tell her!
  3. She probably wouldn't like you
#

thats start of it

lucid iron
#

it sounds like you want an event mod

crude quarry
#

also this is all bc vince called me about if i have piggies on my farm

lucid iron
#

something with cutscenes

crude quarry
#

yeah

lucid iron
#

!unpack

ocean sailBOT
#

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!

lucid iron
#

take look at how events r written

#

!startmodding

ocean sailBOT
#

Making mods can be broadly divided into two categories:

Usually it’s easier to start with making content packs, since you don't need to learn programming.

lucid iron
#

and content patcher

crude quarry
#

i dont have stardew on pc

#

only xbox

brave fable
#

difficulty level goes up a little if you don't actually have the game hahah

lucid iron
#

doomed then

crude quarry
#

i prob can

#

I WANNA MAKE ABIGIAL STATUE MOD HOLD UP

lucid iron
#

i guess this is theoretically doable as xnb mod NotteThink

crude quarry
#

with her eating a gem

lucid iron
#

terror

crude quarry
#

abby eating a gem as a statue

#

recipe unlocked by marrying abigail and getting 10 <3 with Caroline and Pierre then getting 14 <3 with abigal with the letter
"You like Abigail. Would you like to prove that?"

#

is the letter, along with the recipe

#

its

  1. 10 Amethyst
  2. 3 Abigail Portraits
  3. 20 Iridium Bars
  4. 250 Gold Ore
  5. 10 Battery Packs
#

when placed, abigail tells you
"Oh, <player>, is this me?"
"Well, I'll tell you one thing."
"It's accurate!!!"
Then you respond either

  • I knew you'd like it!
  • It was such a waste
  • (ask for child)
#

if you pick ask for child she says
"<player>, what?"
and cutscene ends

#

if 2 children,
"<player>, we have enough."

#

gives 1 amethyst every day and if you beat Journey of the Prairie King, it becomes an arcade machine for it, along with having multiplayer like in the heart event

#

it would be a 3x3 statue

#

SORRY FOR SPAMMING THE ENTIRE CHAT, IS THIS POSSIBLE OR A GOOD IDEA

brittle pasture
#

well, most of that is doable with content patcher

lucid iron
#

i have few opinions about good/bad ideas but many strong opinions about what's feasible monS

crude quarry
#

what isnt doable

lucid iron
#

you are not going to get very far on a platform without smapi unfortunately, unless xbox meant gamepass

crude quarry
#

i have gamepass yeah

#

ultimate

lucid iron
#

then u good, go take look at the content patcher tutorial and how to script events AquaThumbsup

crude quarry
#

oh scripting? nvm

round timber
#

welp

brave fable
#

i respect your boundaries

crude quarry
#

i have 200 pairs of Lewis' purple shorts.

#

OOH PURPLE SHORTS STATUE IDEA-

#

just a statue made with x100 of them

#

5x5 statue

brittle pasture
crude quarry
#

oh yeah

#

what about my shorts statue

round timber
#

sure

crude quarry
#

why is gamepass important tho

round timber
#

it isnt

#

but if you have it that means you can mod the game 👍

brittle pasture
#

when you said xbox we thought the console, which doesn't allow modding

#

if it's on PC, it's fair game

crude quarry
#

i have it is it possible tyo play gamepass through pc

round timber
#

im so confused 🤩

#

!gamepasssmapi

ocean sailBOT
crude quarry
#

yay ty

twin wadi
#

events are so fun but its soooo time consuming lol it took me like a total of 8 hours to make a single event (tbf im a beginner and it had forks which took a while to figure out) lol

edgy swan
#

HUZZAH the basic functionality of my mod works! now to see if editing planting conditions is do-able enough

twin wadi
edgy swan
#

the best, right after the rush of dread when you get a bunch of errors in smapi

twin wadi
tepid plover
#

sorry for late reply my socket extension died :bcedead:

drowsy minnow
ocean sailBOT
#

Log Info: SMAPI 4.2.1 with SDV 1.6.15 build 24356 on Microsoft Windows 10 Pro, with 6 C# mods and 1 content packs.
Suggested fixes: One or more mods are out of date, consider updating them

rigid musk
#

oops

#

where you're loading the image and such?

#

(sorry for sending that early, i have a new keyboard and im getting used to it :L i didnt realize how different it'd feel when using this vs a laptop)

drowsy minnow
rigid musk
drowsy minnow
#

yes

urban patrol
#

your target needs to match your texture

#

whatever you load the png to should be what you put in the texture field

#

so in this case "Texture": "GbsForaging-CollectorsEdition/objects",

drowsy minnow
#

ohh ok thank you ill give it a try SDVpufferheart SDVpufferheart

#

yall have been so helpful thank you so much otherwise i likely wouldnt have managed this at allSDVpufferblush SDVpufferheart

obsidian lodge
#

i want assist with one mod i want to create

#

im looking for a mod like Bathroom after 2nd Houseupgrade

#

without bugs

gentle rose
#

I don't think anyone can guarantee a mod wouldn't have bugs

obsidian lodge
#

i want to make but i dont know how

gentle rose
#

are there existing mods that do it but they have bugs, or is this a new idea?

obsidian lodge
#

new idea

#

i want to make a bathroom after 2nd house upgrade but better

gentle rose
#

what do you mean "but better"? better than what, and in what way?

obsidian lodge
#

more decorated

gentle rose
#

okay, do you specifically want to make one or would you be happy if one already exists? (both are valid!)

obsidian lodge
#

if i cant find bathoroom mod i will make it

#

the mod i mentioned has a specific bug and its a bit outdated

gentle rose
#

can you link to it?

obsidian lodge
#

i found 2 but its not a smapi mod

#

so....

#

this is the first problem

gentle rose
#

can you link them anyway so we can see what we're looking at?

stoic prism
#

why wont the shirt i created work??? it keeps saying folder empty whenever i try to run it 😓

gentle rose
#

we're going to need a little more detail than that

stoic prism
#

hold on ill do something again if it doesnt work ill send

rigid musk
#

Hi Iro :D ( also bye because im going to bed cause i have to get up in 6 hours-) but Hi!

stoic prism
#

i based this off a working mod, uhh (mb abt the design was just testing it first) whenever i launch it it says

these mods cannot be added to your game

  • (mod name) because its an empty folder
vernal crest
stoic prism
lucid iron
# tepid plover wdym by this

So the args is something like Mmap/_critter X Y crittertype count, you can use to Random to change the X Y on a day to day

tepid plover
#

sticker unintentioanl

lucid iron
#
  1. [[Modding trigger_action]]
#

2 10 is argument for critter specifically

gentle rose
prisma sky
#

heeyyaa, so far as I see I managed to fix any errors with loading the asset, but I can't get it to actually show in game for some reason

gentle rose
#

!json

ocean sailBOT
#

JSON is a standard format for machine-readable text files that's used by Stardew Valley mods.

If you need help with a JSON file, you can upload it to smapi.io/json to see automatic validation and share the link here.

When making mods, it's recommended to edit your files in a text editor with JSON support, such as VS Code, Notepad++, or Sublime Text. These programs will check for syntax errors.

lucid iron
prisma sky
#

yes

#

but I'm trying to find some way to debug that now

#

okay so I see the method returning the tas and called by temporarySprites.Add(method) IS executing properly (forget the deleted message if you seen it)

#

hold on

#

the position is in pixels not tiles is it

calm nebula
#

Yup

prisma sky
#

holy SDVpuffersus it works

serene moat
serene moat
blissful panther
#

Either works!

#

But Bouncer is more reliable, since it doesn't depend on one of us being in the channel. SDVkrobusgiggle

serene moat
#

I just messaged bouncer as well

blissful panther
gentle rose
#

I just know that that’s where I got sent when I applied haha, straight to boncher

blissful panther
#

(And I miss the public cheeto-ings. They used to be exclusively in-channel!)

gentle rose
#

too many cheetos now. no more public cheeto dust

prisma sky
lucid iron
#

I mean are u in an event of so sort

gentle rose
#

chee to chee to chee to

prisma sky
#

it's not an event, its more of a background thing

lucid iron
#

Or making something akin to schedule animation

#

I did ask what the desired effect is but u didn't answer Dokkan

gentle rose
#

are you asking all of us or just chu? because you straight up ignored me before and I’d like to know if I should bother lmao

lucid iron
#

I ask for myself always

gentle rose
#

oh I meant if they’re asking everyone chu, not you haha

lucid iron
#

But yea if u r making something like the aerobics animation for ur npc to do

#

The correct thing is schedule anim blobcatgooglyblep

blissful panther
serene moat
#

Yes, I did. And some pixel art for the custom map, spouseroom and patio

#

The weapon and shirt too

blissful panther
#

Then get the pixels part added on the community page, because that qualifies you for the pixelsmith role, too! SDVkrobusgiggle

serene moat
#

Ohhh!

blissful panther
serene moat
#

Thank you!

lucid iron
#

Orang

gentle rose
#

cheeto

serene moat
#

Matches my pfp's hair lol

calm nebula
blissful panther
#

It's from SMC! It's just the puffer holding a cheeto. SDVkrobusgiggle

prisma sky
lucid iron
#

Then you are in an event of some sort i think (festivals r like that)

tiny zealot
#

festivals are events, it's true

serene moat
#

Why is mod-showcase using the old embed grumble grumble

lucid iron
#

Are you envisioning a minigame

prisma sky
#

festivals are pre-coded through aren't day? and my goal is to make them react if there is an object present and where

prisma sky
tiny zealot
lucid iron
#

Well i think tas is valid here if u need higher degree of control

#

Could also fiddle with their AnimatedSprite, but u would be bound to the 16x32

serene moat
prisma sky
#

it's hard to describe, kinda want SV rts minigame starring the villagers SDVpufferchef

lucid iron
#

I'd probably go nope to using any NPC then

tiny zealot
#

brb implementing final fantasy tactics in stardew's engine /j

lucid iron
#

It will add unnecessary co-op sync overhead

#

When i was making trinkets i started off using AnimatedSprite and eventually just changed to a simple custom controller

prisma sky
gentle rose
#

rts?

tiny zealot
#

i only know it as Real Time Strategy

gentle rose
#

but that confuses me as a minigame concept

#

tbh realtime anything confuses me as a concept for a minigame in stardew, a game that’s not really real-time (if I understand the gaming use of the term correctly?)

tiny zealot
gentle rose
#

that is what I’ve heard from everyone who’s dealt with it too tbf SDVpuffersquee

tiny zealot
#

i'm also a bit wary of the potential hurricane of bug reports that other NPC modders receive if your thing ends up screwing with their schedules

gentle rose
#

also just in general you shouldn’t change other modders’ npcs’ schedules for etiquette reasons

#

you don’t mess with other people’s mods from your mod

blissful panther
#

It's sensitive enough I had to make the decision to not allow you to pick up NPCs with Carry Your Pet.

#

Even that was enough to make 'em void walk.

gentle rose
#

favourite reason for void walking is a single misplaced warp in the bus stop making emily step all over your farm sometimes

#

(and through it and into the void)

tiny zealot
#

hey iro this is unrelated but i have seen you say "an smapi" several times and i must know if you pronounce the five letters individually instead of saying "smappy"

lucid iron
#

NPC scary

lucid iron
#

What if Critter

gentle rose
#

I also say ess cue ell

blissful panther
#

I thought everyone said smappy...

lucid iron
#

If a cloud can be a critter anything can

blissful panther
#

I do pronounce out SQL, though!

lucid iron
#

But it's sequel

tiny zealot
#

(this trick also works to determine how people pronounce "SNES")

lucid iron
#

Smampy

gentle rose
#

sneeze

lucid iron
#

Ssness

tiny zealot
#

usually it's one of "sness" or "ess en ee ess"

gentle rose
#

what if ess-ness

tiny zealot
#

jail

blissful panther
#

For me, it's more... snez?

gentle rose
#

(I honestly have no idea how I pronounce it in my head for some reason. Maybe snez? maybe super en ee ess?)

#

anyway what if we compromise and call it ess-mappy

#

or smay-pea-eye

blissful panther
#

@fading walrus, get the hammer. /j

gentle rose
#

smay-pea-eye it is! sold to dh

lucid iron
#

Swampi

blissful panther
#

Okay, slight upgrade time. Attestation gets automatically added to the release now. SDVkrobusgiggle

gentle rose
#

does this let you carry your horse

#

and/or livestock

blissful panther
#

Animals yes, horse... nope!

gentle rose
#

sad

#

why did you abandon the horse

blissful panther
#

Which does mean you can carry MEEP animal-powered fake NPCs, but... that's fine. SDVkrobusgiggle

tiny zealot
#

haha yes the default key is left shift what else would it be /lh

blissful panther
#

Left shift plus interact! SDVkrobusgiggle

tiny zealot
#

yeah that is tater toss's default as well

blissful panther
#

Wait, really?!

tiny zealot
#

yeah. it's configurable

blissful panther
#

I guess at least we know nobody's had a problem with it yet!

tiny zealot
#

tee hee

blissful panther
#
╰─> gh attestation verify --owner AlanDavison /home/alan/.local/share/Steam/steamapps/common/Stardew\ Valley/Mods/BetterReturnScepter/BetterReturnScepter.dll
Loaded digest sha256:e0a90a9702f4057249c9e01f7668fe5f4fd1bd5b459cab73297fa672ee23498e for file:///home/alan/.local/share/Steam/steamapps/common/Stardew Valley/Mods/BetterReturnScepter/BetterReturnScepter.dll
Loaded 1 attestation from GitHub API

The following policy criteria will be enforced:
- Predicate type must match:................ https://slsa.dev/provenance/v1
- Source Repository Owner URI must match:... https://github.com/AlanDavison
- Subject Alternative Name must match regex: (?i)^https://github.com/AlanDavison/
- OIDC Issuer must match:................... https://token.actions.githubusercontent.com

✓ Verification succeeded!

The following 1 attestation matched the policy criteria

- Attestation #1
  - Build repo:..... AlanDavison/StardewValleyMods
  - Build workflow:. .github/workflows/manual-release.yml@refs/heads/master
  - Signer repo:.... AlanDavison/StardewValleyMods
  - Signer workflow: .github/workflows/manual-release.yml@refs/heads/master

SDVpufferowo

#

Now for the fun process of uploading a "new version" of the same version of all of my mods so everything lines up.

tawny ore
#

Did you implement DRM for SDV mods? /lh

fading walrus
#

(I had Dutch class.)

idle lantern
#

I think I figured it out. I opened Elliot's map to see an example 🙂

prisma sky
#

so going back to the original question lol, in time I will look into other ways to do that but for now if I play a temporary animated sprite how can I hide the original sprite?

idle lantern
#

I finished my Custom NPC room!

calm nebula
#

I would use the animation system on npc

#

AnimatedSprite

pine elbow
#

What mods are you making?

calm nebula
#

Me? The last time I released a mod was May 2023.

pine elbow
#

And what was it?

prisma sky
calm nebula
#

I think that was the group with camera pan, shovel, not sure what else was in there

lucid iron
#

What is the purpose of your question

pine elbow
#

Mine?

lucid iron
#

Yeah if u want to talk about playing with mod perhaps #modded-stardew better

#

This channel mainly for getting help with creating mods

idle lantern
#

Writing dialogue, and I have Evelyn scripted to mention a 'flea market'. Is that too colloquial, or should I let potential-future translators worry about it?

#

Or is 'bazaar' more Stardewy

#

wait. Rummage sale.

round timber
#

id say “flea market” is the most stardewy

#

rummage sale sounds british, which stardew isnt

blissful panther
#

And recognisable, personally!

pine elbow
#

And here ppl were talking

pine elbow
prisma sky
#

are there any premade ways of summoning particles, or is it also done by tas and some content spritesheet?

lucid iron
#

Yeah TAS is usually what u do

#

For example u can look at how cauldron smoke in the wizard's house is a combo of scale change alpha change motion

prisma sky
#

so there are no "prefabs", and I have to find and tas it on my own then?

#

as in no collection of common particles ready to be called \

#

I love how farmer, tools, and for example a water from the watering can are all separate tilesheets lol

blissful panther
#

You can try to find in the decompile where the game creates a similar set of particles or whatnot that you want, but... they're just all over the place.

prisma sky
#

yeah I see

rigid oriole
#

There's a utility method for creating sparkle particles i believe

#

Specifically sparkles

winter relic
#

Hey all,

I'm a blind Stardew Valley newbie, with some programming nuances. I'm looking for a way of creating custom farm maps without a dedicated software (I can't use Tiled because, well, I'm blind and it isn't accessible at all).
The problem is that the map boundaries appear as blocked tiles when I play. If you think about it, it does make sense, since the map was intentionally made to have a certain shape, but I would really like more freedom. I'd love a big, rectangular farm map, with enough space to fulfill some ideas (paths connecting objects, nice fences separating huge planted areas from the buildings, etc.).

Do you have any suggestions (avoiding the one to consult a sighted person to help me with Tiled or to create the map for me, please 😅)? Is there any programmatic way of creating a map within my mod? I know they are somewhat complex, but at the end of the day, they are just a data structure (ideally in C#, potentially a .tmx file). I'd stick to the vanilla tilesheets for obvious reasons. 😉

Thanks in advance for any tip, advice, idea, suggestion... Every kind of help would be really appreciated.

urban patrol
#

i’m not sure how helpful this would be, but if you open .tmx files in notepad++ or another type of text editor, the tile layout appears as rows and columns of numbers that correspond to the tile that’s been been placed there

flat sluice
gentle rose
lucid iron
#

Hm i think there are some big rectangle "cleaned up standard farm" mods

gentle rose
#

I've actually made one myself haha (but they asked to only be given advice on how to do it themselves)

#

mine isn't published or anything but I can throw it here if anyone does want it

uncut viper
#

i think the biggest problem would be identifying what numbers go to what tiles without documentation of the vanilla tilesheets in that regard

#

its XML but without knowing what to write in the XML its difficult

iron ridge
lucid iron
#

As for just making the map programmatically i guess if have a special tilesheet whose tiles are layed out logically and only for function of "being diggable" or "being water" it's possible to generate a thing like that

#

Most maps aren't this cus they use game tilesheets and those have funny rearranging going on

uncut viper
#

a custom tilesheet laid out specifically for this and documented seems like itd be the best way to me too

lucid iron
#

Thanks to 1.6 u can just make whole new map as farm

#

No need to worry about keeping vanilla sheet

gentle rose
#

@winter relic tl;dr it is possible that asking sighted people for help to some extent is unavoidable because there just isn't documentation of this stuff right now (but if you let us know more about the accessibility tools you currently use we may be able to give slightly better advice?)

gaunt orbit
#

If you use c#, you can create a map entirely programmatically via the asset pipeline

#

Nobody has before, as far as I know, so you'd mostly be in uncharted territory, but it's definitely a thing you can do

idle lantern
#

Tiled isn't allowing me to add multiple Custom Properties: Actions, but I want two different warp points within the same room. Is this the best way to format the two options?

TouchAction MagicWarp 4 10 Town 57 64,
TouchAction MagicWarp 9 10 RahielLamp 45 6

blissful panther
#

Casey is probably the closest to having completely procedurally made maps...

lucid iron
worn coral
winter relic
#

Hello! Thanks for the ideas.
I'm using the NVDA screen reader, with the Stardew Access mod to make the game accessible.
I'm definitely going to check TMXpy, since I'm way better in Python than in C#, but the latter might also be an option if I figure out how to do exactly the thing I want to do (by trials and errors, of course, and a lot of hours spent in VS haha).

Yep, some existing farms/maps similar to the described one would also be a good option, so throw them without hesitating. 😄