#making-mods-general

1 messages · Page 575 of 1

brittle pasture
#

aww thanks all even though i lowkey kinda dont want ppl to use it
not cuz it's bad but because i dread dealing with compat issues lol

gaunt heath
#

I've never made an NPC so I'm not the authority on this lol

severe cairn
#

oh one of thoseeee

#

sorry sorry i thought it was a regular text box </3

verbal glacier
severe cairn
#

I had the exact sqme issue fr

#

Man I need to eat something I've been misreading too many things

torpid sparrow
#

me nor kailey can remember how its displayed

#

xd

#

i wanna say it does but i rly cant remember

severe cairn
#

I feel like if its on its own it might misplay as small... cus i also swear i remember seeing it

#

so like no other dialogue just the message

verbal glacier
#

isn't the small dialogue box only for events

torpid sparrow
#

that one can be achieved by message yes

severe cairn
#

The shane dialogue for joja is in his dialogue file and it is indeed with the message only and no additional dialogue

#

Guess it just kept the size of the text box after the dialogue gets displayed, so it ends up really big

torpid sparrow
#

interesting

severe cairn
#

huh wait

#

I just tested it and it seems the message is big even without any dialogue

#

hmm, might be hardcoded?

torpid sparrow
#

if its dialogue yeah

stark ocean
#

yooo i have a question about the $p dialogue command. when used in tandem with the question command, does the followup dialogue using $p activate right after the question is asked (similar to the $e command)? or would it only check what to respond with the next time the question is asked? i'm trying to implement a follow-up with two different responses depending on how the farmer answered but the text for it doesn't come up in any conversation right after the question is asked nor the next day. just making sure i didn't mess something up or misunderstand the wiki

severe cairn
#

omg I tried using both before 😭 did not end well for me
I don't fully remember but I know the question would get asked at the most confusing times. like right after the first message and all that
Still im new to modding sdv so it might be a me issue, but I tried lots of combos and it got more and more confusing

#

the first dialogue (if p true) would play as if it was the question prompt, and then the questions would pop up... (questions were meant to appear if false)

wanton pine
#

code example please?

#

of adding a layer specification in the target or patchmode field

verbal glacier
proven spindle
# wanton pine code example please?

Have you checked the content patcher documentation yet? there's an example right under the patchmode section on the editmap page; just add a line with "patchmode": and your patching method to the example the same as the other lines in there

proven spindle
#

You can remove any unused layers from your fromfile tmx map

wanton pine
# proven spindle Have you checked the content patcher documentation yet? there's an example right...

That's - actually my problem. I can't tell what exactly the github documentation wants me to do. Am I supposed to create a second "Patchmode": line? Is it telling me to add something to the extant one? If so, what should that look like - how do I conjugate the two and what encapsulation method ("" {}) do I use?

(Everything has already been edited in Tiled, and is is a playable state. All that's left to do in tiled is interior redocorating and the removal of excess object layers, which I am saving for after the code works.)

#

Logging off for a bit, I have things to do.

near imp
patent lanceBOT
#

@uncut viper: ask chu about adopt wild pet features (38d ago)

wanton pine
calm nebula
#

Please I cant find the strays outside of work today plz put them in stardew

marsh reef
#

chat does anyone know if there's any kind of tile data thing you can use to simulate the edge of a map to keep the camera from traveling past until warped past? or

torpid sparrow
#

i dont know what that means

lucid iron
#

Just yoink that pigeon right there

#

It's free

torpid sparrow
#

i really want to catch a pigeon

#

but i wont...its tempting...

#

just grab one

uncut viper
urban patrol
#

check out the bus stop

lucid iron
fierce vault
#

pretty sure the viewport clap makes the map beyond it not visible though

uncut viper
#

oh heck yeah

lucid iron
#

It's actually mostly working I am just procrastinating on mp testing

uncut viper
#

what do you mean Was

#

oh ok good its not shelved

#

I didn't realize atra had already pinged you by the way because your name is wumbus
But It was my reminder so I was obligated to ping you anyway

lucid iron
#

I actually scope creeped to include farm animals too

proven spindle
# wanton pine That's - actually my problem. I can't tell what *exactly* the github documentati...

Alright, so (you probably already know most of this, gonna include it anyway just in case):

The documentation gives you examples in this format (this example is from the Map Properties section further down the EditMap page):

{
"Format": "2.9.0",
"Changes": [
{
"Action": "EditMap",
"Target": "Maps/FarmCave",
"AddWarps": [
"10 10 Town 0 30"
]
},
]
}
What this example shows you is basically an entire content.json file. If you run that example unchanged in the game with a manifest file, it'll work.

The example has three things in it: the Format line, the Changes section, and the patch (which is an EditMap patch in this case, but other types of patches can be things like EditData, Load, Include etc), so it's helpful to separate them out to figure out what you need.

The Format line should only appear once, at the top of every content.json (but not other files).
Each content patcher file should have one Changes section. Within that section (enclosed by square brackets), you put all of your patches.

The tables in the content patcher docs tell you what kinds of lines fit into the patches. Each line has a key (the first item, before the colon) and a value (the second item, after the colon). All patches start with an Action line. That means the key is "Action" and the value is the type of action it is, such as "Load", "EditMap" and so on.

(continued below)

lucid iron
#

It's from axell's owl mod it's out DokkanStare

#

I just used it for testing

#

Unfortunately no taking own home rn

uncut viper
#

i want to take the owlboi home though

proven spindle
# proven spindle Alright, so (you probably already know most of this, gonna include it anyway jus...

You apply that same formatting for the other lines. The first column in the table tells you the key, and the second column tells you what possible values go into it. In the above example, "Target" and "AddWarps" are both keys, and "Maps/FarmCave" and ["10 10 Town 0 30"] are both values. Most values are just a string (a word or phrase between quotation marks), but if the key specifies it should be a list (like AddWarps) then it'll use square brackets. Keys with specific formats like that typically mention that they require a non-string format in the value explanation; if they don't, you can generally assume string and then look for examples or ask about it if they don't work :)

With the Overlay A Map section, patchmode is one of the available keys that can be in an editmap patch (since it's on the editmap page). So you'd make a patch with "action: editmap", and then on the next few lines you'd add the keys you need (like "patchmode" and "fromfile"), and then you'd give each of those keys a colon and then their respective value (like "replacebylayer" and "yourfilenamehere.tmx" respectively). You may not need all of the lines; the value explanation will tell you if it's optional, and what the default will be if you don't specify it.

The modding wiki follows similar formatting, in case you're having any trouble with interpreting that too :)

patent lanceBOT
#

@next plaza: make a mod where weed debris near a bee house will make weeds honey (161d ago)

proven spindle
#

casey what crimes were you committing 161 days ago

patent lanceBOT
#

@next plaza: what Selph said (161d ago)

fierce vault
#

That’s some good stuff, Si SDVpufferthumbsup

proven spindle
#

modder's pie got me practicing SDVkrobusgiggle

#

i used to make tutorials for my company's wiki, guess i got pretty good at it

calm nebula
#

Watermelon and opposite watermelon

torpid sparrow
#

wow

#

together they make one brown colour

marsh reef
urban patrol
old edge
#

Currently designing my first wallpaper mod but when I switch the wallpaper well the entire time only the bottom portion is visible idk why

marsh reef
#

I want to have two separate areas in the same map but preferably seperated by the movement of the camera instead of just a void or extended amount of tiles 🙂‍↕️ making an ACNL island for the farm and to get to marnies ranch you go down to a seperate map, but if i were to turn it into just a mod on its own, i currently have the forest edited in stardew expanded to warp you to the extra map rather than an extention of the farm 🙂‍↕️

calm nebula
#

Kitty

marsh reef
urban patrol
#

only what's on [[Modding:Maps]]

urban patrol
#

if you want things added by frameworks, you'll have to look at their docs

marsh reef
#

oh sick thank you 🙂‍↕️

old edge
#

You want the camera to behave like in old Zelda?

#

Where it snaps into place when you enter a section of the map?

#

You could make map and add c# logic to it in data/locations

#

But there’s also a mod called mumps that may have had a feature like this

#

Not updated anymore

marsh reef
#

wait, would it work to set the "ForestEntry" to be "Name.Of.Other.Map X Y"??

proven spindle
#

Where would I start if I wanted to modify child sprites for a specific spouse?

#

I never have kids in my saves so I'm not familiar with any of the child mods

calm nebula
#

Look at Lumi's kids take after spouse mod

proven spindle
#

much obliged 🙏

marsh reef
marsh reef
# old edge You want the camera to behave like in old Zelda?

mmm kinda, more like make two boxes the camera stays in when you're in em but switches when you warp, bc the bottom of this farm is ocean, doesnt make sense to take a boat to marnies, so i made an other side beach to a path, I want it to just be one map but i dont wanna make just giant chasm of water between em

next plaza
brittle pasture
#

im honored to be responsible for 2/4 of them

stark ocean
marsh reef
thorn hollow
#

Hi. I am having issues implementing something into a mod I'm making for content patcher and was told on reddit to ask about it here. So I'll just copy what I wrote there:

I am trying to make it so the monster eradication goal for slimes is marked as complete if a slime hatch is built, even if the player has not killed any slimes.

Things I've tried that did not work:

Using "TriggerActions" to tell it to "AddMail Current Gil_Slimes received" if the condition are met.

Using a "When" condition to set the amount of Slimes needed to complete the goal to 0 if the condition is met via "Slimes": { "Count": "0"}. (It does set the count to 0, but the goal doesn't seem to actually complete and the perfection counter doesn't seem to count it).

Using "EditData" on "Data/MonsterSlayerQuests" with "Condtion": to set "Count" to 0 the same way.

Any ideas on how I could do this in content patcher? Or is it something that would require C#?

brittle pasture
#

I think you'd need C# for this; I don't think the monster killed stat is exposed for content anywhere

#

though a trigger action action would be nice

#

new BETAS thing?

thorn hollow
#

Dang. Is it possible to just exclude the monster slayer goal from perfection somehow then? Or would that also need C#?

lucid iron
#

I thought it's just a stat so u can incrementstat

calm nebula
#

No, it's one level deeper

brittle pasture
#

it's its own super special stat dict

#

with that being said as mentioned exposing it as a new trigger action would be trivial Button pls

brittle pasture
#

then it won't count for perfection, though you still need to find a way to give the player their slime charmer ring

calm nebula
#

Just mail them one lol

thorn hollow
thorn hollow
brittle pasture
#

"key": null

stark ocean
#

tilesheets my worst enemy... i removed the tilesheets i copied from the unpacked files, as i was instructed to do long ago, since i'm now done making/editing the maps, and smapi is giving me all sorts of errors. before i would load in the rooms with the pngs still in the maps folder, but now that i've taken them out, it seems to have broken things. here's the smapi log: https://smapi.io/log/2ae8e654c2c54ed480b4af7548f78216 if anyone might know how to fix :')

ocean sailBOT
#

Log Info: SMAPI 4.5.2 with SDV 1.6.15 build 24356 on Windows 11 (10.0.26200.0), with 17 C# mods and 5 content packs.

uncut viper
brittle pasture
#

isnt the case here they want to increment the stat without killing monsters

uncut viper
#

they can just use their own stat for whatever they want to do instead

brittle pasture
#

but monster slaying quests dont use regular stats

uncut viper
#

but it does use the mail flag to determine if you've already done it

thorn hollow
brittle pasture
#

would that help with perfection SDVpufferthink

brittle pasture
brittle pasture
uncut viper
#

but it would then use the count in the data asset, no?

#

where else would it get the number to consider for completion?

thorn hollow
#

Removing the quest does seem to work though, so I'll probably just try to use that. Maybe see if I can use When to only remove the quest if the hatch is built?

uncut viper
#

The bool that the game uses to determine if a farmer is a monster slayer hero is controlled by checkForMonsterSlayerAchievements which does use the count in the data asset

brittle pasture
#

I mean the count for the actual slain monsters by the player (they want to boost that number by 1000 when a slime hutch is built)

#

right now there's no way to boost that stat without killing monsters

uncut viper
#

right but I'm saying you can just remove the need to boost that stat

brittle pasture
#

yeah that's my null it out solution

thorn hollow
#

I mean, reducing it to 0, so that 0 monsters are needed instead of 1000 would also work. I just needed a different "completion" condition, essentially.

uncut viper
#

you don't even need to null it out. the mail flag works for marking it completed on the board and setting the count to 0 makes it count for perfection

brittle pasture
#

ah I get it now

#

i didnt consider just doing both

calm nebula
#

You're awesome, button

#

We appreciate you

severe cairn
#

can anyone explain %fork? There's like... one sentence about it on the wiki, but doesn't really explain how it's used

calm nebula
#

Sure! Favor using quickquestion if you can

autumn tide
#

the modding community's official stance is that %fork should be burned at the stake

old edge
#

I figured out my own issue I had set a back 2 layer on top which was making back layer not noticable

severe cairn
#

nod nod

stark ocean
severe cairn
#

Anyway I'm basically just looking for something that could fork the event depending on the player's combat level lol

calm nebula
#

I dont think you can currently without a dependency

severe cairn
#

The only thing I can find is just starting a whole new event yea

calm nebula
#

(Misty made one?)

#

Yeah! Just edit your event in conditionally using CP tokens

severe cairn
#

tyy ^_^ I'll figure something out (and open more tabs on sdv modding... I have like 13 but I closed a few I havent used in a while lol)

old edge
#

Forks are very confusing

#

But you can create intricate dialogue

severe cairn
#

I use them so much haha, I spent a whole day learning them and I sure am gonna use it to its fullest

old edge
#

what I have created... a decoratable cave sort of

severe cairn
#

I never thought of that, but it looks really cool so far... Like a cave entrance :0

wanton pine
proven spindle
patent lanceBOT
autumn tide
#

wow 2 quotes in one hour I have truly made a difference in the world SDVpufferwow

stark ocean
ocean sailBOT
#

Log Info: SMAPI 4.5.2 with SDV 1.6.15 build 24356 on Windows 11 (10.0.26200.0), with 17 C# mods and 5 content packs.

autumn tide
#

hmm, afaik you might not be loading your pngs to the right place?

#

one moment

near imp
#

(its late and im tired but should the asset name have the .png bit in it?)

proven spindle
#

Only in the patch that loads the asset

#

After that you should reference the internal name you gave it when loading it (mods/{{modid}}/yourinternalassetnamehere generally)

autumn tide
#

okay took a peek at one of my mods for ref, I believe the filepath should be mods\{{ModID}}\yk the rest of the filepath but please double check this fellow mod ppl

autumn tide
stark ocean
#

hmm i guess i'm a wee bit confused, where would i check to make that change?

near imp
#

might also need clarification, are you trying to utilize the default games seasonal tilesheets, or your own versions that happen to be named the same thing?

autumn tide
#

could you upload your json pls?

stark ocean
#

i just borrowed a copied version of the tilesheets to make a custom room/spouse room/patio, so just utilizing!

#

yes one sec

uncut viper
#

Are your tilesheets in the same folder as your tmx?

stark ocean
uncut viper
#

Asset names starting with SMAPI/<modId> indicate that SMAPI is trying to load an internal asset from your mod folder, in this case a tilesheet, which Im guessing means you have spring_outdoorsTileSheet.png in there

#

But no summer version, or winter or fall

#

Your tilesheets should be in a different folder from your .tmx unless you specifically want it to only ever use those exact .pngs (i.e. no recolour compatibility) and if thats the case, you must have all the seasonal variants included

#

(You in all likelihood do not belong or do not want to belong to the camp that needs the tilesheets in the same folder)

wanton pine
uncut viper
#

What? Where did you get #Base_2 from? What do you mean patching layers

stark ocean
uncut viper
#

You should yes. Until you remove them tohugh, if they are in the same folder as the .tmx, they have priority over using the game's versions

#

Which for seasonal assets is a problem if the season changes but you do not have the seasonal variant in there too

#

Because it'll continue looking in the same folder as your .tmx

calm nebula
#
poll_question_text

Core mod

victor_answer_votes

8

total_votes

12

victor_answer_id

3

victor_answer_text

Cats

stark ocean
#

okay i see! so i should make a new folder for tilesheets & move them there, re-path the tilesets in tiled to match those instead, then remove the tilesheets folder?

uncut viper
#

My "move them to a different folder" thing was because I got my wires a bit crossed and was thinking about custom sheets, but if you DO plan on removing these sheets entirely, you CAN keep them in the same folder for now for editing

#

As long as you include the seasonals

#

Alternatively, you can start using tilesheetinator which will make working with tilesheets a lot easier and remove the need for them to be in the folder at all, even when editing

#

If you did move the tilesheets and repathed them there for editing, you would break your map with tilesheet climbing.

#

(The suggestion to move them was bc of the aforementioned crossed wires where I was thinking of custom tilesheets that would then be Loaded)

#

!tilesheetinator

ocean sailBOT
#

You can use the Tilesheetinator tiled extension to create Stardew Valley maps that work in-game without having to copy vanilla and modded tilesheets back-and-forth, rename files with a . in front of their name, edit maps only in the unpacked content folder or make symlink workarounds.

See the mod page for full installation and use instructions.

wanton pine
# uncut viper What? Where did you get #Base_2 from? What do you mean patching layers

{
"Action": "EditMap",
"Target": "Maps/Greenhouse",
"FromFile": "assets/{{ModId}}Greenhouse_Background{{season}}.tmx", <<<<<<<<< Here
"FromArea": { "X": 0, "Y": 0, "Width": 35, "Height": 6 },
"ToArea": { "X": 0, "Y": 35, "Width": 35, "Height": 6 },
"PatchMode":"Replacebylayer", <<<<<<<<this needs specified layers, I think

    },

re: https://github.com/Pathoschild/StardewMods/blob/develop/ContentPatcher/docs/author-guide/action-editmap.md#overlay-a-map

I got "...map.tmx#Base_2" from - well, the way subsections are normal refernce on the web, and - why i actually used it - how tiled references tileshhets, as I figured that is more likely to be the actual method???

GitHub

Mods for Stardew Valley using SMAPI. Contribute to Pathoschild/StardewMods development by creating an account on GitHub.

uncut viper
#

I'm still not sure where you got #Base_2 from or what you're asking, since it seems like from that snippet you already know how to do a map patch? ReplaceByLayer is the default.

near imp
#

Do you mean Back instead of Base?

uncut viper
#

#Back_2 would also be completely meaningless

stark ocean
ocean sailBOT
#

Log Info: SMAPI 4.5.2 with SDV 1.6.15 build 24356 on Windows 11 (10.0.26200.0), with 17 C# mods and 5 content packs.

uncut viper
#

er, ../<The name of the folder its in> not just ../

#

I don't remember where furniture.png is from. TileSheets? It'd be ../TileSheets/furniture.png if it is

wanton pine
#

updated explanation; hit enter instead of shift+enter.

uncut viper
#

I'm not sure why you're making any assumptions based on the web or Tiled about how Content Patcher's EditMap works. It works exactly how it says on the page. If you only want to patch specific layers of a map, just only include those layers in the file you're patching with

#

If you only want to alter the Back2 layer then your FromFile .tmx should only include Back2

ornate locust
#

basically this

wanton pine
#

It isn't, I'm trying to stick a set of seasonal maps behind transparent greenhouse glass

ornate locust
#

What isn't what? ReplaceByLayer does not need to be told what layer to affect. You make a patch, you only use the layer you want to affect, and that's it.

#

Just make a patch that uses the back layer and has no other layers in it. It'll replace only the back layer when patched in

wanton pine
#

My wetware has several significant abnormalities, some of which means that it finds instructions and paperwork fields much less straightwords than most brains do.

Anyway, I now know that I need to make five-ish dummy layers under the "floor" of the greenhouse map and rename the layers of my backdrop map after them, Thanks!

ornate locust
#

That doesn't quite sound right

#

But I'm not sure what you're doing other than stuck things behind transparent glass. Why the five layers?

latent mauve
#

Okay, so I've got a bit of an odd circumstance here: My multiplayer group plays the game with the host player on the entire time, but the rest of the players drop in and out throughout the game session, which means they sometimes miss entire days. This means that some letters that are only sent on a specific day with questlines are not received.

We've previously used debug commands to directly give them the missing quests as needed (Robin's Lost Axe, Jody's Cauliflower request, Mayor's Lost Shorts, etc.) but now I'm looking at options to prevent it going forward by using trigger actions to resend the missing letters.

#

If I set an action to send mail that would normally provide a quest but they've already completed the quest, what happens?

#

(I'm hoping it doesn't duplicate the quest, but it's not the end of the world if it does)

uncut viper
#

It will duplicate the quest.

latent mauve
#

Okay, good to know.

#

We'd only get dupes of the axe and cauliflower so far since we haven't progressed far into summer, so that's not awful.

brave fable
#

typically if you have events that affect all players you should be checking the host player in your conditions

uncut viper
#

Well these are vanilla things...

brave fable
#

assuming this is your own mod sending the quests and mail

wanton pine
stark ocean
latent mauve
uncut viper
#

(Beyond that, I'm not myself familiar enough with Tilesheetinator to do any troubleshooting of it)

fleet oxide
#

Fiddly little question. Is there a way to scootch an object over by a few pixels in an event? I know there's positionOffset for actors, but what about objects?

stark ocean
ornate locust
calm nebula
#

If this happens on vanilla report it

ornate locust
#

I did some PatchByLayer stuff and that appeared to be how things worked

latent mauve
#

So far it only seems to be missing the letters that have a predetermined season_date_year ID

near imp
ornate locust
#

I don't know about negative layers either so good shout LOL

#

learn something new every day

near imp
#

i learn something new and an old thing falls out the other ear SDVpuffersquee

patent lanceBOT
calm nebula
#

You can in your trigger action also just check for the mail

latent mauve
uncut viper
#

Well you can definitely save some space by removing all the optional fields if you wanted

latent mauve
#

I don't know if the SkipPermanentlyCondition is needed or not since it's partially the same as the Condition

uncut viper
#

It can help.

#

It's never needed but it does add it to the list of trigger actions already run if SkipPermanentlyCondition is true, which means none of the rest of the stuff is checked

#

So it's more an efficiency thing

latent mauve
#

ah, I see

uncut viper
#

But I meant HostOnly, Actions, CustomFields, and MarkActionApplied

#

Those can all be removed if you're using default values anyway

#

You could LocalToken these, though that's more a subjective thing about whether or not it makes it simpler to write all the dates down, since it wouldn't be for saving space (you'd need the same amount of patches anyway + an Include)

latent mauve
#

This would be way easier if those quests had their own flags, but sadly they do not.

#

So I have to check it this way.

uncut viper
#

I didnt mean using their flags for localtokens, you'd still be inputting the mail key and the date range, they'd just be one after the other in the localtokens list

latent mauve
#

Well, I've condensed it down a bit by removing the optional fields with default values per atra's suggestion

#

Since this is gonna be for our personal use, I can just comment out the trigger actions for the quests that are gonna be duplicated for now, probably.

royal stump
calm nebula
#

You can also probably do a local token

fleet oxide
wanton pine
#

Behold my dummylayer-powered madness!

// seasonal greenhouse backdrops
  {
     "Action": "EditMap",
     "Target": "Maps/Greenhouse",
     "FromFile": "assets/{{ModId}}_Greenhouse_Backdrop_{{season}}.tmx",
     "FromArea": { "X": 0, "Y": 0, "Width": 35, "Height": 8 },
     "ToArea": { "X": 0, "Y": 1, "Width": 35, "Height": 8 },
     "PatchMode":"ReplaceByLayer", 

    },
  {
     "Action": "EditMap",
     "Target": "Maps/Greenhouse",
     "FromFile": "assets/{{ModId}}_Greenhouse_Backdrop_{{season}}.tmx",
     "FromArea": { "X": 0, "Y": 0, "Width": 35, "Height": 8 },
     "ToArea": { "X": 0, "Y": 33, "Width": 35, "Height": 8 },
     "PatchMode":"ReplaceByLayer",

    },
stark ocean
#

uhh update, but i used tilesheetinator and got the missing tilesheets repaired finally. the tilesheets i was originally referencing have been removed from the folder that the map tmx files are in. but i am now getting this smapi log: https://smapi.io/log/e470c6421512477b99a0daab2f502fa8. i tried to decipher what was wrong with it and i'm pretty sure it's still the layers? not sure how to proceed

ocean sailBOT
#

Log Info: SMAPI 4.5.2 with SDV 1.6.15 build 24356 on Windows 11 (10.0.26200.0), with 17 C# mods and 5 content packs.

wanton pine
#

....Why do both underscores and astrisks cause italics???

latent mauve
#

Discord markdown. Use the backticks ` to get around that, or use the JSON validator instead and share the URL for your code.

#

Three backticks around your code on either side will put it in a code block

wanton pine
#

That's, like, a seventh of the content json, I'm just happydancing because it is now in a state where it should do what I want it to

fierce vault
#

heard the slightest wurring noise in my room again, and just realized it’s my computer. I very likely never cut smapi when putting it to sleep SDVpufferflat

wanton pine
#

Time to copy it into my mods folder and see if it does its job.

fierce vault
#

oh… turns out I did. Must be my all my tabs and the fact that it was plugged in

severe cairn
wanton pine
#

....So i'm making jsons with notepad regualar, and the validator keeps telling me that it's detecting {. when there's either a comma or nothing after the { ???
Is the "new aka/paragraph" symbol somehow doing this despite not showing up as anything in the box of evaluated text????

#

(yes, I checked for {, typos.)

ocean sailBOT
#

New command added! You can use it like !npchelp.

fierce vault
#

woah, new command?

severe cairn
hard fern
#

😔 i recommend using... not notepad

#

something like n++ or vsc is better

#

!software

ocean sailBOT
severe cairn
#

It's become an unwitting habit...

#

i normally code in visual studio which is the funniest (worst?) part... alas.

proven spindle
#

once you go vscode you can never go back

#

the dark mode alone does it for me, the formatting stuff is just a bonus

severe cairn
#

I've been using vsc since before i started modding stardew, but I'm so used to notepad when it comes to stardew now that vsc feels wrong </3 its a curse

#

I do use it when troubleshooting festival stuff tho, that file is so long i need the option to collapse sections

torpid sparrow
#

something to think about for ur npc :3

spark wharf
#

is there a really, REALLY simple guide to setting up a config for a mod? I think I'm too stupid to understand the one on the pathoschild github

torpid sparrow
#

could just look at an example

#

what r u trying to set up

spark wharf
#

I've been looking at examples but they do different things than what I'm trying to do, and when I try to modify it to do what I want, it doesn't work... I'm trying to make a config for my truffle mod that lets you set the min and max truffle spawns without having to edit the content json

torpid sparrow
#

like without the player having to edit the content json right?

#

idk how to do that but just clarifying

spark wharf
#

yeah

marsh reef
fierce vault
#

Oh, you're adding new truffles to the game?

spark wharf
#

I have values set that determine the amount spawned per day but right now that can only be changed by directly editing the content json

marsh reef
#

Ohhhh

#

Good info for others then 😎

fierce vault
#

Can you send the json over?

#

!smapi

ocean sailBOT
#

SMAPI is the mod loader for Stardew Valley. It loads mods into the game, provides APIs for mods to use, intercepts errors, and backs up your save files automatically.

See the player's guide to using mods for more info.

fierce vault
#

Oh

#

hold on

spark wharf
#

sure, do you want the one I tried to stick the config in that doesnt work or the one pre-config?

fierce vault
#

Uh, sure, share the config one I guess

#

I've done some config stuff, so I'll take a look

spark wharf
#

thanks for taking a gander it. I literally have no clue what I'm doing..

fierce vault
#

sure

#

I'll check this out

spark wharf
#

Oh I gotcha, sorry

fierce vault
#

Ok, so I don't really see what's even supposed to be the config here, so I'll send over an example of how a basic config can work

spark wharf
#

the Minimum and Maximum SpawnsPerDay are about midway down the json, that's what I'm trying to have a config for. but yes please, I'll look at any further examples

mellow laurel
#

I think you'll wanna use {{MinimumSpawnsPerDay}} here then

"MinimumSpawnsPerDay": {{MinimumSpawnsPerDay}},

spark wharf
#

oo okay, instead of the value there I reckon

fierce vault
#

You're going to need a config schema field

#

and Dynamic tokens, I think

spark wharf
#

oh I don't know anything about dynamic tokens, or what that means 😫

fierce vault
hard fern
fierce vault
#

Dynamic tokens are in the table of contents

#

My Dynamic token (or DT) here:```{
"Name": "Santa Red",
"Value": "{{ModID}}/SantaRed"
},

#

my config schema: "SantaRed": { "AllowValues": "true, false", "Default": "true", "Description": "" }, is what actually lets the player choose to allow that value or not

fierce vault
#

I don't know how to exactly format that off the top of my head

mellow laurel
#

I did config pricing for my furniture shops

        "SeedShopPrice": {
        "Default": "500000"
        },```

```"Entries": {
                "Radium_SeedShop": {
                    "Id": "Radium_SeedShop",
                    "ItemId": "(F)Radium_SeedShop",
                    "Price": "{{SeedShopPrice}}",
                    "IgnoreShopPriceModifiers": true,
                    "AvailableStock": 1
                }```
#

worked like this

spark wharf
#

sorry I'm trying really, really hard to understand.. I dont know how to translate these examples into a spawn amount ><

mellow laurel
#

can...can you have a configuration for an FTM pack? is that a stupid question

fierce vault
spark wharf
fierce vault
#

Ok, I could totally be wrong because I'm not very knowledgeable on DTs, but lemme see if I can cobble something together

fierce vault
# spark wharf your guess is as good as mine 😫

So this might work as a DT"Name": "MaximumSpawnsPerDay1": "Value": { "Default": "1", },and maybe insert this new DT in here"UniqueAreaID": "WF Woods", "MapName": "Woods, Custom_ForestWest", "MinimumSpawnsPerDay": -1, "MaximumSpawnsPerDay": {{MaximumSpawnsPerDay1}},// right here "IncludeTerrainTypes": [ "Grass", "Diggable"and then this in the config schema "MaximumSpawnsPerDay1": { "AllowValues": "true, false", "Default": "true", "Description": "" },

#

and ...

#

wait

#

ok, I'm going to edit this again

fierce vault
#

I don't know if it's correct

spark wharf
#

I will try to tape these bits in and see what happens

fierce vault
#

Oh, I think I sorta know the issue with this exmaple I gave. If it's false, I think it just breaks the spawing all together

#

hmm

#

did anything happen?

spark wharf
#

sorry I am still doing it, I am very inexperienced with this whole thing 😅

fierce vault
#

I need a more experienced modder in the room, honestly

#

I am still a semi-beginner

#

I think there may need to be a query in here...

#

I'll reference my snowman mod

hard fern
fierce vault
#

I was tempted to say I need a trusted adult, yeah 😄

hard fern
#

noman npc...

#

is it not a snowman

fierce vault
#

Not for april fools he isn't!

fierce vault
#

I'm putting it in a json right now

#

I'n going to see if I can format it better

spark wharf
#

I'm beginning to wonder if its ok to just leave it as needing to edit the content json manually..

fierce vault
#

Hold on a sec

mellow laurel
#

could always upload another version, with more spawns. people can pick which to download

fierce vault
#

Ok

#

is there an adult in the room that can help me help someone else figure out what's wrong here?😅

#

these are NOT supposed to be functional content json by themselves btw

spark wharf
#

I will probably revisit this when I have some more experience.. I didn't even know how the brackets worked until like yesterday.. if that gives you an example of how unknowledgeable I am lol

#

(implying I know how they work now... only a little better than yesterday)

fierce vault
#

Yeah, nothing wrong with just updating the mod later when you know more

#

I'm not really experienced enough to help here either

#

I am curious how close I was to something functional though

spark wharf
#

I really appreciate your help and time though

fierce vault
#

It can be easy to get caught up in adding a lot of cool features at once. People don't need a config for the spawn rate to change to play with your idea though

spark wharf
#

for sure, and as long as it works its fine for now 😄 I made the mod mostly for me and I certainly dont need a config. I just thought it would be helpful to other people

fierce vault
#

yeah. I feel like testing whether the spawn rates would be hard, so I am not going to ask you try anymore of my cobbled code on it

#

I thing the configs would show

#

but would they work?

#

Probably not. I feel there's something wrong

spark wharf
#

I mean, it LOOKS good.. to my untrained eye

fierce vault
#

If anyone does want to correct what I was trying to do, @ me. I want to successfully finish this, even if I'm not the one technically solving it lol

royal stump
#

SDVpufferlurk I'm just skimming at the moment, but if I'm parsing all this correctly:
FTM packs are not CP packs, they don't support tokens except in a very specific field (CPConditions), and they don't have their own config.json files

#

there is a 2.0 beta that should be ready soon and controllable via CP, but currently it doesn't work that way

fierce vault
#

Hmm, ok

spark wharf
#

ah.....

wanton pine
#

[SMAPI] Skipped mods
[SMAPI] --------------------------------------------------
[SMAPI] These mods could not be added to your game.

[SMAPI] - Greenhouse with Orangery and Cellar for SDV 1.0.0 because its DLL 'ContentPatcher.dll' doesn't exist.

...This is a coding issue, isn't it.

royal stump
fierce vault
# spark wharf ah.....

I'm sorry though, it would have been better if I didn't throw at best half-understood json in the mix, especially because of the time spent on this. I knew there was something wrong with the first code snippet that I tried adding some of your stuff in, but I wasn't sure how to fix it, so I shouldn't have shared it. Good luck with your mod. 😅

spark wharf
marsh reef
#

bc i have an idea depending on how you have the mod set up 🤔

spark wharf
# marsh reef did it ever work out?

My mod is an FTM pack which don't have config files 😅 I would prob need to convert it to a CP pack or something like that, and I dont have the brainpower for that atm

marsh reef
spark wharf
marsh reef
#

yea 🙂‍↕️

spark wharf
#

thank you for taking a gander at it! I am prob done for the day though, my brain is burnt

marsh reef
#

🙂‍↕️ I'll lyk how it goes

latent mauve
#

I used a fresh save that hadn't experienced Robin's letter, slept to the day I got the letter as the host, slept a day, and then invited a friend to join, and even with this mod installed, the trigger action did not fire after sleeping and produce their missing letter.

#

Would having the trigger be DayEnding and the action just AddMail mean that they need TWO sleeps?

#

as opposed to AddMail Current <mailId> now

tiny zealot
#

the default arrival time for the AddMail action is tomorrow, so firing at DayEnding means it should be in the mailbox in the morning (one sleep)

marsh reef
#

chat how does one reference a {{variable}} from another mod if its a custom value for the gmcm config?

latent mauve
fierce vault
#

OH noo!

#

I just checked, and my snowman that you build in winter is counted as true on the intro quest

#

This is (mildly) terrible!

#

He's not even in the social tab

#

until you meet him!

#

Maybe I should get another small update out quicker than I was planning to

tranquil olive
#

hm, now might be a good time to figure out how to make a wearable ring

fierce vault
#

Idk if farmer guy should be in the intro quest either though SDVpufferthinkblob

#

either could work I guess

sullen frigate
#

Hello everyone~

I was wondering if someone could help me with a quick question?
I am trying to make a mod for personal usage where I want to change some values of other mods to balance them according to my own taste.
I have some luck with some mods, but with others I cannot get it to work even if I use the exact same code.

For example I am trying to change the edibility of some fishes added by "Fish of Teyvat" (Wonderful mod btw, highly recommended). For this I am using this code:

    "Changes": [
        {
            "Action": "EditData",
            "Target": "Data/Objects",
            "Priority": "Late + 1000",
            "Fields": {
                "otohime.teyvatfish_Sweet_Flower_Medaka": {"Edibility": "20"},
            }
        }
    ]
}

When in-game it doesn't change it and they maintain the same energy value when eaten

brittle pasture
#

did you spawn new objects to test

sullen frigate
#

yes 🙂

brittle pasture
#

check your logs and verify that your changes are applied?

#

patch summary your_mod_id_here can also help

fierce vault
#

so, changing the location for an event does not register commands using OnLocationChange?

brittle pasture
#

(Edibility is also a number so you want 20 and not "20", though I'm not 100% sure if CP will convert that anyway)

proven spindle
fierce vault
#

Because I tried, and my map patch only applied after I left the custom map outside of my event 😔

brittle pasture
#

the usage of Fields here is fine

sullen frigate
#

I checked the logs and i didnt see anything saying it didn't work. I will check the patch thing 🙂

royal stump
fierce vault
#

Oh SDVpufferthinkblob

royal stump
#

conditional map changes might have weirder caching logic, but afaik CP does force them to reload for any editmap or load stuff

fierce vault
#

hmm, ok, thanks. I guess I’ll have to test more and see if I can get it to work right after the event then

marsh reef
#

chat which of these is what im needing?

#

content patched editing a value tryna replace it with a variable value

lucid mulch
#

if you are replacing the entire thing you don't need a text operation

marsh reef
#

what do i put it as then? 🤔

#

currently have

      "Target": "Mods/FarmTypeManager/YourPackName/content.json",
      "TextOperations": [
        {
          "Operation": "Replace",
          "Target": ["WildResourceSpawnLogics", "0", "MaximumSpawnsPerDay"],
          "Value": "{{TruffleNumber}}"
        }
lucid mulch
#

you would want to use a mix of TargetField and Entry/Fields to do that

marsh reef
#

:3

royal stump
#

also FTM doesn't use any assets that CP can edit, so that won't do anything, unless there's an FTM-to-CP framework somewhere I've not aware of

marsh reef
royal stump
#

"target" doesn't interact with SDV's folders like that, just specific addresses where images or text files are loaded

#

FTM doesn't load anything into that system

marsh reef
#

dang 🤔

royal stump
#

e.g. there's a file called Stardew Valley\Content\Characters\Abigail.xnb with abigail's sprites in it, which the game later loads into the targetable asset "Characters/Abigail"
CP can target the loaded address, but not the actual file

marsh reef
#

mmmmm 🤔

#

i see

#

do you know of any way to make the max spawns per day for that to be editable in game some way rather than needing to go to the content.json?

royal stump
#

unfortunately no, the packs' content jsons aren't loaded into the game anywhere, short of somebody making another mod for that
I'm working on a 2.0 update for FTM that can be controlled with CP packs (among other features), but it's ready for testing yet

marsh reef
#

no way in ftm either? :( heck

royal stump
#

so there's no real token support in FTM packs for now, and no GMCM access to the settings

#

(historically because FTM wasn't a framework at first and content.json was a config for users to poke at)
(several years later, it's pretty complicated)

marsh reef
#

mmmmm, i see

royal stump
#

ig there's a very roundabout way to make a CP pack control whether spawn areas are active, if it's necessary enough

#

have a CP pack that edits Data/TriggerActions and adds/removes a mail flag (or multiple) like "{{ModId}}_MoreForage"
then have the FTM pack use multiple forage areas that are only active when one of the mail flags is set

#

that said, I'd probably just tell users to tweak the content.json min/max numbers, and/or wait for the eventual update

marsh reef
#

🤔 so wait, then, if there were to be, 10 of the same thing, all depending on if a certain mail flag is set, and then have those all set to a config on a content patcher pack, would that techincally work? 🤓

marsh reef
royal stump
#

setting flags directly from CP does involve making trigger actions do it, iirc, but yeah, FTM spawn areas can be on/off based on flags and such

marsh reef
#

trigger actions

royal stump
marsh reef
#

gmcm not up to the job? 🤔

royal stump
#

GMCM lets you edit a lot of mods' config.json files, including CP, so it can let people edit your CP pack
but the pack itself needs to edit a mail flag, because FTM can't see local tokens

marsh reef
#

okay so ftm reading mail flags to see how many maximum spawn, content patcher pack is setting or removing the flags, since it's supposed to be first thing in the morning they spawn can the trigger be daystarted? or like, loading into the world?

marsh reef
royal stump
#

I'm not sure if FTM packs do their work before or after the DayStarted triggers, so it might be necessary to use DayEnding
here's a rough sketch of what the CP pack would need to do for one flag, though I can't test it atm

    "Changes": [
        {
            "Action": "EditData",
            "Target": "Data/TriggerActions",
            "Entries": {
                "{{ModId}}_MoreForageOn": {
                    "Id": "{{ModId}}_MoreForageOn",
                    "Trigger": "DayEnding",
                    "Condition": "{{Your config token here}}",
                    "Action": "AddMail Current {{ModId}}_MoreForage received",
                    "MarkActionApplied": false
                },
                "{{ModId}}_MoreForageOff": {
                    "Id": "{{ModId}}_MoreForageOff",
                    "Trigger": "DayEnding",
                    "Condition": "!{{Your config token here}}", /* note the "!" part */
                    "Action": "RemoveMail Current {{ModId}}_MoreForage received",
                    "MarkActionApplied": false
                }
            }
        }
    ]```
#

DayEnding would have the issue of missing the first day they play with your mod, though

#

i.e. it'd just start off

marsh reef
queen geode
#

Was wondering why you know so much about FTM and then I’m like oh you are the author of the mod. SDVemoteheart thank you for the work.

royal stump
#

built-in trigger options are just DayStarted, DayEnding, and LocationChanged, so you'd need the warp check & then it might not happen consistently if they sleep multiple times

marsh reef
royal stump
#

yeah, probably safe either way in that case (and most forage really)

marsh reef
#

does this do anything or is it lowkey cope

royal stump
#

FTM still sets up the day's forage at the start of each day no matter what, it just assigns random times based on those

#

so your flag would need to be set already in the morning for it to turn on/off a spawn area in there

marsh reef
#

mmmmm I see

marsh reef
royal stump
#

afaik there's no workaround to get actual numbers passed into FTM like that, unfortunately
it'd just be a way to toggle spawn areas on or off based on a CP config

#

but yeah, the token should either be "true" or "false" so the Condition field can use it

marsh reef
royal stump
#

yeah, that'd be the way to do it for that many options

#

I'm not really familiar with the CP-GMCM config format, but you'll want the token in "Condition": "{{your token}}" to be the text "true" or "false", so dynamic tokens might help convert to that if needed

#

and on FTM's end, "CPConditions" takes CP tokens, or there's the "GameStateQueries" list for those, etc

#

so the mail flag itself would go in one of those

marsh reef
#

question, if i have two areas on the same section, will they both trigger? or will stardew explode and the world end?

royal stump
#

FTM's "Areas" field is a list, so you can have multiple full areas inside each one, like

  "Forage_Spawn_Settings": {
    "Areas": [
      {
        "SpringItemIndex": ["daffodil"],
        "SummerItemIndex": null,
        //etc; this is area 1
      },
      {
        "SpringItemIndex": //etc, area 2 stuff here
      },
      { //area 3 here, and so on```
#

so one of those would be your lowest setting & require mail flag 1 to be on, etc etc

marsh reef
#

wrong areas sorry

#

if I have two ftm plots covering the same X Y space of the map, and they're both on placing stuff, will they both go or will it be broken

royal stump
#

ah, yeah, that kind of overlap is completely fine

#

if the tiles are blocked by other forage, they'll just use other empty ones in the area, or in the worst case be unable to place anything else, but they won't error

marsh reef
#

okay sick, so i dont need to worry about it being exactly one on at a time 🙂‍↕️ and then, can i send the paste of a content.json and you tell me how much of it is what i need to copy paste for each of the ten? i dont remember what website it is ppl send me to to paste stuff

royal stump
#

SDVpufferthumbsup https://smapi.io/json will let you upload any json file, though it doesn't have an FTM toggle for validation stuff

#

outside of basic json syntax issues

marsh reef
#

oh yes it is this

royal stump
#

for new areas, it might also help to use the Config Editor in FTM's optional downloads on Nexus, it's a graphical UI for editing those

marsh reef
#

ooohhh

royal stump
#

(light mode warning because I use that & never thought to add a toggle SDVkrobusgiggle)

latent mauve
#

So I discovered a fun change to how my Useable Community Center mod is operating in the latest version of the game and SMAPI-- suddenly the rooms that actually had patched tiles rather than just patched tile data seem to be working even when the full community center is not completed!

marsh reef
latent mauve
#

Meaning that the rooms actually are usable as they get opened now, so long as I have also patched the tile layers

#

I changed nothing in the code, it just started working that way today xD

marsh reef
royal stump
# marsh reef https://smapi.io/json/none/41404ca2e9524e9aa8397a089dd8cf02

so your first forage area is from lines 8 to 66 in that link:

"Areas": [
    {
        "SpringItemIndex": [
        //...
        "UniqueAreaID": "WF Woods",
        //...
        "DaysUntilSpawnsExpire": null
    }
]```
you can copy-paste that entire {} part and separate them with commas, so it looks like
```json
"Areas": [
    {
        "SpringItemIndex": [
        //...
        "UniqueAreaID": "WF Woods - Forage spawn area 1",
        //...
        "DaysUntilSpawnsExpire": null
    },
    {
        "SpringItemIndex": [
        //...
        "UniqueAreaID": "WF Woods - Forage spawn area 2",
        //...
        "DaysUntilSpawnsExpire": null
    },
    //etc as needed
]```
marsh reef
#

thank you 🫡

#

okay then the checking for mail, and can i make custom mail 🤔

royal stump
#

also you may want to make a backup of FTM packs' json files before testing changes like this
FTM auto-updates to deal with some old formatting issues, which might delete your work if it's in the wrong field in certain ways

#

e.g. it loads but something's in a misnamed field, so it re-saves it without the misplaced stuff

royal stump
#

(most often it just deletes // and /**/ comments, since those aren't loaded into the game)

royal stump
#

same as with most IDs

#

they also don't actually make any mail show up in the box if you set them to "received", or if they just don't have a letter in Data/Mail (iirc)

marsh reef
#

so in the content patcher i just add lets say "ModId_truffles10" to recieved mail and check for it in ftm?

#

even if its not anywhere in the files bc it was just sent to recieved?

royal stump
#

literally writing {{ModId}} won't work in FTM since that's another CP token, but copy-pasting your CP mod's ID in place of it will work

marsh reef
queen geode
#

Wow there is actually a new mod manager for Mac that is Moddew Valley. Looks very aesthetic. https://www.nexusmods.com/stardewvalley/mods/44500?tab=posts

Nexus Mods :: Stardew Valley

A cozy macOS app for managing your Stardew Valley mods. Browse Nexus, toggle mods on and off, create modpack profiles to switch between setups, and share them with friends over Bluetooth. Comes with a

dire kestrel
queen geode
#

Sorry for wrong chat apologies

royal stump
#

but yeah, test an on/off trigger setup like that, then make a set for each spawn area, and it should be able to toggle each area in the FTM pack

marsh reef
#

okok, hopefully i can get this to testable within a reasonable time

royal stump
#

(and all that said, in a few months FTM should start supporting junk like this directly in CP too)

{
    "Action": "EditData",
    "Target": "Mods/TestAsset",
    "Entries": {
        "ExampleActionGroup": {
            "Trigger": "DayStarted",
            /* other shared "action group" settings here */
            "CustomActions": {
                "ExampleAction_SpawnObject": {
                    "ActionType": "SpawnObject",
                    "Condition": "PLAYER_HAS_MAIL Current {{ModId}}_SpawnTestForage Received",
                    "Settings": {
                        "Location": "Farm, Woods",
                        "TileCondition": "AREA_CIRCLE 30 30 20", /* spawn inside a 20x20 circle around tile 30,30 */
                        "ItemList": [
                            {
                                "ItemId": "(O)93" /* item data fields, as seen in Data/Locations and such */
                            },
                            {
                                "ItemId": "(BC)143"
                            }
                        ],
                        "ItemListMode": "Random",
                        "MinTimes": {{MinimumForageToken}},
                        "MaxTimes": {{MaximumForageToken}}
                    } /* etc */```
marsh reef
marsh reef
#

successfully got then to stop all firing, incorrectly doing the mail

hard fern
#

hm, i have a bit of an unusual question... how feasible would it be to make something that logged events, and you could choose to rewatch them?

main falcon
#

like all events?

half tangle
#

Mobile Phone has its reminisce feature (or whatever it's called) for heart events which might be worth looking at

#

You might have to strip out certain things from an event script to prevent some unwanted behavior

#

(like setting mail flags for choices or something)

brave fable
#

old / new / new and extremely pink. something must be done about these azaleas

dire kestrel
#

reminds me of spineworld art 🫶

marsh reef
#

@spark wharf

#

if you're up still

swift falcon
#

looks beautiful, what is it for?

brave fable
#

for me 🙂‍↕️

hard fern
brave fable
#

looks normal to me

rugged bolt
#

Hm... my NPCs work now, but they just stand in their original positions for some reason...

hard fern
brave fable
#

fine on pc as well, no idea what you're seeing haha

brave fable
# marsh reef Yoooo sick roof work

unfortunately gramps is doing a properly bad job of fixing the small hole in the small hall roof, but he's probably about 500yo so it's to be expected

hard fern
brave fable
#

maybe you have a simplified chinese system language installed that's taking precedence over japanese/traditional

hard fern
#

ugh

#

how

brave fable
#

in truth im not sure if that's the mandarin style for those characters but if i were to guess that'd be it SDVdemetriums

hard fern
#

if i check settings it only says japanese and english are installed

brave fable
#

other than that, odd font? the characters are still legible and the unicode is presumably the same

void aspen
#

Discord does render symbols differently depending on the os

#

Even if you type something in the text box and then send it in chat

#

Unless it's something on your end that changes the symbols

hard fern
#

i dunno, the font does get weird

brave fable
#

this does all remind me this is now 1 year since my japan trip and i still haven't sorted out the thousands of photos. heaving sigh

hard fern
#

trying to type 神様 displays like this on my end

void aspen
#

That's a weird thing

hard fern
brave fable
#

anyway this is all very far from making mods and even wumbus world

hard fern
#

SDVpuffersweats true

hard fern
hard fern
clever monolith
#

When releasing mods, do you guys test on every platform and multiplayer before releasing? (Provided that the mod is intended to support the platform ofc)

hard fern
hard fern
clever monolith
#

I feel so guilty when sth doesn't work for multiplayer/mobile cuz I never test for it 😭

hard fern
#

android modding is cursed in ways i don't really want to touch; the things that dont work with it i dont think i can even fix anyways

#

most of my mods should work fine with android, so long as android smapi itself works fine + any framework mods the mod relies on

#

in the case of multiplayer i just go "oh well" 😭

#

and hope nobody runs into issues

clever monolith
#

Yeah I get you

near imp
#

if i were to state that "this works for x y z" id ofc test first for x y z. Otherwise id just say it works for singleplayer pc and the rest is up to Yoba and good luck to ya'll SDVkrobusgiggle

severe cairn
devout otter
#

Can I get a quick confirmation? Would this theoretically work for "the player has at least two children"? "When": { "HasValue:{{ChildNames |valueAt=1}}": true, }

lucid iron
#

yea should work

devout otter
#

Thankee!

true coyote
#

so someone is asking for compatibility between upgradeable sve buildings and building footprint swapper but I'm not exactly sure how to... do that

void aspen
#

What's your mod doing and do you think it's really needed

true coyote
#

I mean, mine just changes some of SVE's code to be able to buy the upgrade from deluxe barn buildings to premium barn buildings

#

I'm asking what seems to be the incompatibility, since they just asked for it but didn't tell me what the issue is 🫠

void aspen
#

If its just one person then I'd just leave it as this

hard fern
timber pilot
#

do I have to redo the maps to make it compatible with sdve? there is a community garden where I put my building

hard fern
#

Yeah

#

Like 9/10 you're going to have to edit your map patch in some way to be compatible with sve

#

Whether that is just moving it over slightly, or having to remodel it entirely

timber pilot
#

I HAVE TO REDO THE FUCKING BUILDING AGAIN

toxic topaz
#

If im making a custom npc, would i make a subfolder inside of the mod folder with the assets and content.json for the content patcher things? idk what im doing and this is quite confusing

hard fern
#

But the content and manifest.json have to be in the same level

toxic topaz
#

sorry im bad at explaning, this is too confusing lol.

#

ooh that helps though thank you

autumn tide
#

you can look at other mods' file structure for reference

hard fern
#

Generally people do something like this, just as the most basic

My mod

Assets

Portraits.png
Sprites.png
Content.json
Manifest.json

#

Geh that didn't embed right

#

I would show you my folder structure but i think you might be even more confused by that

toxic topaz
#

ill copy that and see if it works, thank you

main falcon
#

How do people make menus?
Call me spoiled, but drawing everything manually seems pretty tedious

frosty hull
#

Hello - i have question, how can i get role the "Mod Autor"?

swift falcon
#

using stardewui?

fossil osprey
swift falcon
#

maybe

main falcon
fossil osprey
#

Basically yeah

main falcon
#

alr thnx i'll check it out

fossil osprey
toxic topaz
#

for making a custom npc, would the target for the edit data be the blank.json? I feel like what i have now is wrong.

lucid iron
#

You need to be level 25 farmer and have 1 or more mod posted

wanton pine
tiny zealot
lucid iron
#

Making UI in vanilla is indeed mostly SpriteBatch.Draw by hand but you do have IClickableMenu which handles a bunch of stuff

fossil osprey
#

Ooooh I didn't know you have forked it, I haven't been on Nexus in a hot minute, good to know!

lucid iron
#

In fact I would actually not recommend StardewUI if you aren't making an IClickableMenu

wanton pine
#

In particular, I would reccomened making a "default" button art art, copy-pasting and altering the copies as needed.

lucid iron
#

It's kinda specialized for that and a little overkill if you just want a hud message

lucid iron
wanton pine
gaunt orbit
#

the approach I took for happy home designer was to break it up into multiple pieces by separating it into nested menus and custom widgets

lucid iron
#

Oh it does work on phone now

#

I did also go add ability to control scrolling so that I can paginate stuff easier

void aspen
#

What's the latest format mobile smapi can run

lucid iron
#

But yeah I think it's specialized towards the particular kind of menu which takes over the active menu and not as good for arbitrary UI/HUD items

#

I wanna try and improve the second thing eventually but it's not really my usecase so far

brittle pasture
#

it does have a mode for pasting something on screen i recall, though maybe it's only good when use with another menu

lucid iron
#

The idrawable api needs more knobs

#

It doesn't accept inputs rn which is pain

fleet oxide
toxic topaz
#

im following that guide, and still struggling trying to get my npc to even show up lol. from what i can tell i have everything, but it still isnt there

fleet oxide
#

do]\

#

ugh sorry. if you share your last smapi log from a test run I might be able to help

toxic topaz
#

how would i do that? From what im seeing it says its loading my mod, but when i run to the location that i set as its home, it just isnt there. so my best guess is its a problem with the files/code in my mod

fossil osprey
#

Have you made them any schedules?

#

They won't appear if they have no schedule

toxic topaz
#

yes, my schedule is just them standing in the middle of the bus stop all day

#

im not sure if its implemented correctly though

#

the whole blank.json part is confusing

fossil osprey
#

Is there anything in the console that would point to an error?

verbal glacier
#

!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.

verbal glacier
#

You can upload individual jsons so people can take a look and see what’s wrong

toxic topaz
#

it says the errors are the targets, but thats the part that i was kinda stumped on anyways

fleet oxide
#

Ok, one thing you can fix is that when you're including a separate json, you don't set a target

toxic topaz
#

so just delete the targets when using the include action?

fleet oxide
#

Yup. You'll use "editdata" and set a target within the separate json file

rich cliff
#

Hallo. I'm dead set on the mod idea I have atm and I wanna share it. I noticed whenever I started playing a new save I'm always gathering resources and they would be used up quite quickly, especially wood. I want to make use of the wood pile that's on the farmhouse. Being able to store resources without using them so quickly would be so helpful.

barren tapir
#

How would someone change a building texture and it's Metadata when said structure is clicked?

I'm trying to make a building similar to the golden clock that, when active, enables the golden witch event before perfection.

gaunt orbit
#

I think you could use c# to add a custom tile action that changes the skin

#

Would probably be the simplest way

barren tapir
#

Is there documentation and/or tutorials for adding custom tile actions in c? This is my first time messing with tile actions 😅

gaunt orbit
#

You call GameLocation.RegisterTileAction and give it your handler method

#
internal static void RegisterAction()
{
  GameLocation.RegisterTileAction("myModId_myAction", MyAction);
}

private static bool MyAction(GameLocation where, string[] args, Farmer who, Point tile)
{
  var building = where.GetBuildingAt(tile);
  if (building is null || building.buildingType.Value != "myModId_myBuilding")
    return false;

  //... do things with your building
  return true;
}
#

written without an IDE so some things might be a bit off but this should give you a general idea of how to do it

barren tapir
#

Tysm!

stuck marlin
#

Hello, I'm having an issue with my custom buildings and at, they add a previous stage to the vanilla buildings, and when i upgrade them, while the building is changed to the vanilla one, at doesn't recognize it and it says it's the previous step. Exiting the game or even removing the mod doesn't fix it, it's considered by at the previous step no matter what, I don't know if i can do something to fix this issue or what is causing it

fossil osprey
marsh reef
#

is there any way to run an if check on something? like, for an edit data condition where it needs true false, am i in any way able to do something to the effect of "condition": "if(variable = number)" or smthn and have that return true or false?

tiny zealot
#

conditions on content patcher's EditData (called When) are handled by content patcher itself using its own tokens and are not compatible with game state queries, the in-game version of putting conditions on certain things

#

game data fields that support such conditions are typically called Condition so i'm making sure to clear that up in case of confusion

marsh reef
twilit quest
tiny zealot
#

you can put a When condition set on any content patcher patch

marsh reef
#

i have mostly everything but the dropdown implemented bc i dont know if i can really do that

tiny zealot
#

yeah you can drive any of your patches from config values. the config value will be made into a token and you can check its value in your When blocks (or anywhere else tokens are supported)

marsh reef
#

epic, and it looks like i can list multiple whens? and if none of them are true does would it default to false? or need I check for that?

#

bc the way i want it will be having em turn on and off

tiny zealot
marsh reef
tiny zealot
#

i tried to explain this before, but Condition (game state query, supported by the base game) and When (content-patcher-specific, not understood or even seen by the game) are not interchangeable

#

often you can accomplish the same goal using either one. see the CP docs for more, but choosing between them can be a tradeoff depending on your needs

#

in general i prefer using Condition/GSQ when possible

brittle pasture
marsh reef
#

🤔 im just using condition to make sure "variableN" is true, so then if i can get true false from if "selection" is equal to any of some numbers then that's perfectly fine too

marsh reef
brittle pasture
#

yeah seems like that's an AT problem (look at modData)

#

dunno why it works like that though; to make sure skins from base buildings dont disappear when upgraded?

lucid iron
#

I would just not worry about it and use cp building skins

stuck marlin
#

some mods don't have a cp version

lucid iron
#

That does make me wonder what exactly is logic when upgrading cp building skins tho (im guessing they match by ID)

lucid iron
gaunt orbit
#

Nvm

lucid iron
#

If you use this, AT tools can still be used to swap between them

#

Or you swap at robins

#

Vanilla use it for cabins and pet bowl

gaunt orbit
#

It seems like AT is just not updating the mod data properly when buildings are upgraded

lucid iron
#

I do need to get back to having AT fit it's data into this system tho

gaunt orbit
#

It's still using the BrokenCoop key in moddata

#

Also sidenote but @stuck marlin your custom buildings should be prefixed with your mod id for compatibility

stuck marlin
#

when a building has skins, it recognizes them

#

i upgraded a broken pet bowl into a pet bowl, and the skins work

twilit quest
stuck marlin
#

the broken pet bowl doesn't have skins, only the pet bowl tho

#

So, is this an AT issue? there is nothing I can do?

gaunt orbit
#

You can file a bug report on nexus or github

stuck marlin
#

I just wanted to make sure it was an issue on the AT side, I'll do that, thanks!

marsh reef
#

why doesnt this work 🤔

unreal spoke
#

Looks like HasValue can only return true or false to me. SDVpufferthinkblob

marsh reef
#

it does only need to return true false, but it's not correctly doing that 🤔

#

chat maybe nvm i think i had it auto turning itself off

autumn tide
#

@devout otter hey! was thinking of making an update for the Spicy Krobus mod with some of the stuff I was working on before I completely forgot, uhh wanted to ask your opinion on making fertilizer a loved gift?

meager ginkgo
#

if I make a content patcher mod do I need to prepend [CP] to the start of the mod name/folder?

#

or is that purely convention

torpid sparrow
#

no

#

just for funsies

#

also puts the mod at the top in ur folders

meager ginkgo
#

okie dokie

autumn tide
#

not necessarily! it is considered good practice iirc though

uncut viper
#

it does literally nothing functionality wise so it's not good practice or bad practice it's literally just entirely up to you

autumn tide
#

aaah okay

uncut viper
#

(it CAN affect load order but you should not be relying on that whatsoever)

#

(so please just pretend it doesn't)

meager ginkgo
#

I should hope I don't need to worry about load order

torpid sparrow
#

you may

uncut viper
#

you should never be in a situation where you are concerned with the load order of the folders themselves

lucid iron
#

The optimal play is emojis trust

uncut viper
#

The order SMAPI organizes them yes, but not the way your OS orders the folders

torpid sparrow
#

oh yeah to be clear i did not mean the folders xd

meager ginkgo
#

ok I'm just gonna forget I asked and not put CP then I don't have to think about it haha

autumn tide
#

out of curiosity what are y'all opinions on putting that prefix based on the content pack type?

lucid iron
#

One of the reasons why [ABC] became a thing is because people needed multiple framework for most mods back then

autumn tide
#

aaah makes sense

lucid iron
#

So for example a pufferchick mod needed bfav for the animal, ja for the items, pfm for mayo, etc

uncut viper
#

I think if you have multiple packs for the same mod, it's helpful to prefix them. otherwise I don't care for it

autumn tide
#

gotchaaa okay, so it's largely a relic of when most mods came with multiple packs

keen ivy
#

Hey! Extremely new to making mods. I am using Dead Boys detective, SVE, and Sydney (a custom NPC). I want to make a compatability patch to fix an issue when the locations load between where Sydney’s house is, the lighthouse of dead boys detective, and the beach part of where Sophia’s house is. When you walk from Sophia’s to the lighthouse, and then to the beach, it skips Sydney’s. But when you walk to Sydney’s from the beach, and then to Sophia’s, it skips the lighthouse. I don’t know if this makes any sense but there’s an issue loading the maps in the correct order. I have a basic understanding of how to use content patcher but could use some guidance on where to find a guide to fix how the locations load? I know There’s a ton of information online but I don’t know what specifically I should be looking for.

torpid sparrow
#

you can edit the warps

#

i dont know if dbd has a compat patch for Sydney but if not then its normal for DBD to go straight to beach

#

if u want to make it all line up you'll have to edit the warps to make things line up

#

what is the correct order ur looking for?

vale holly
#

does modData get saved, I need to attach values to the player that get reset every day.

calm nebula
#

ModData is saved

vale holly
#

alright thanks.

tiny zealot
#

i would consider using moddata anyway and simply clearing it in daystarted if you need it to reset

gaunt orbit
#

If you don't need mp sync, you could also use a ConditionalWeakTable

toxic topaz
#

does anyone know why when i press ctrl+b in VS it doesnt include my content.json file at all? any changes is applied for every single other file, but not this one for some reason

brittle pasture
#

content.json is for a content mod, not a C# mod

#

you can't have a mod be both

#

if you want to bundle a content mod with your C# mod ModBuildConfig has a field for that

toxic topaz
#

im just trying to add a custom character PES_Hands idk what im doing

brittle pasture
#

you dont need a VS/a whole C# mod for a content pack

#

just a text editor to open your json files

toxic topaz
#

wouldnt i need C# for events and things though?

torpid sparrow
#

norp

#

can confirm i know 0 c# and have made 2 custom characters

toxic topaz
#

what is c# for then?

torpid sparrow
#

stuff u cant do with existing frameworks

brittle pasture
#

yea if you need to modify game logic in ways that isn't exposed by the game's content pipeline or via frameworks then you need C#

#

new characters, heart events, mails, locations, and more are all exposed

toxic topaz
#

what about like a custom check to do something with the character after a specific flag

brittle pasture
#

depends on what "do something" is, but if it's making changes to their base data that's also possible with just content

toxic topaz
#

well im not sure what would make my mod a C# mod, because i dont think i have anything like that yet

brittle pasture
#

I recommend perusing the wiki reference and content patcher documentation and try to go as far as possible with your content pack

#

once you hit a wall, ask questions here

toxic topaz
#

ive done everything i could think of and the npc still isnt appearing, idk

brittle pasture
#

that's when you post your log and code

#

!log

ocean sailBOT
#

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:

  1. Open this page: smapi.io/log.
  2. Follow the instructions at the top of the page to upload the log file. (Don't copy & paste from the console window!)
  3. 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.

brittle pasture
#

!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.

ocean sailBOT
#

Log Info: SMAPI 4.5.2 with SDV 1.6.15 build 24356 on Windows 10 (10.0.19045.0), with 15 C# mods and 2 content packs.

toxic topaz
#

second would by my content.json, idk what else i would share

torpid sparrow
#

iirc npcs need gift tastes defined to work

toxic topaz
#

ah, ill add that then

brittle pasture
#

it looks like your mod is defined as a C# mod instead of a content pack for CP

past loom
brittle pasture
#

you want to change that and repackage your mod

toxic topaz
#

do i do that in my manifest?

brittle pasture
#

delete the DLL/C# code and fix your manifest

torpid sparrow
#

found the issue

torpid sparrow
#

also here

#

and here

#

it looks like ur having trouble with the string format?

past loom
#

oh, maybe?- I followed the wiki but perhaps I understood something wrong

torpid sparrow
#

it should be for example

#

speak Columbina \"dialogue\"

#

ur backslash is on the other side

#

urs is speak Columbina \"dialogue"\

past loom
#

oooh

toxic topaz
past loom
#

okay yeah that makes sense, I'll fix it up, thank you! ^^

solar snow
#

If someone can manage to make a mod about "Reina" from "Fields of Mistra" I pay 50 bucks for that someone

torpid sparrow
#

i cant tell if ur srs but it would certainly cost more than 50 SMCKekLmaoDog

torpid sparrow
#

nope

ruby marsh
torpid sparrow
#

do mice come out

solar snow
torpid sparrow
#

thank you!

torpid sparrow
keen ivy
solar snow
keen ivy
#

(Also I love Tilly!)

torpid sparrow
#

thank u!

ruby marsh
torpid sparrow
#

👀

torpid sparrow
whole prism
#

hiiiiiiiiii

#

question

#

if a fish gets cooked in game, I assume I can detect it with PLAYER_HAS_ITEM ?

#

For instance, if a Sardine (131)

#

got cooked

#

how can I figure it out?

brittle pasture
#

PLAYER_HAS_ITEM checks that the player's inventory has an item

#

if a sardine got cooked it likely is not going to be in the inventory anymore

#

what are you looking for?

whole prism
#

Just for fun

#

to add some sort of depth

#

Just I'd assume a basic trigger action set to "tomorrow" for the letter to arrive

#

But how to detect cooked fish, I dont know

brittle pasture
#

if there is a dish that can only be made from sea turtles you can check for that item

#

you're out of luck if you made sashimi though

whole prism
#

yk that smoker they have in game?

#

idk if its smoked or cooked

fierce vault
#

oh, good ol’ legendary sashimi 😄

brittle pasture
#

dont think what you want is possible without c#

whole prism
#

ooof ok tyty

whole prism
#

then send mail next day?

#

like PLAYER_ATE_ITEM, imaginary property for instance

brittle pasture
#

spacecore has item eat trigger

#

you can set an action to send mail when that trigger is triggered with your item

whole prism
#

tyy

past loom
#

okay, so I'm slightly confused how the move command works in events
so if for example my npc starts at 65 70 0, and I want them to move 10 tiles to the right, I would do /move NPC 10 0 0/ or do I write the coordinates like /move NPC 55 70 0/?

torpid sparrow
#

former

#

move npc 10 0 0

past loom
#

well, that would explain why my npc would walk off in a different direction now :'D

#

thank you! Events sure are complicated-

severe cairn
#

I was so confused by that at first lol

#

It's really important to read specifics T_T also theres like... one(?) command that uses "player" instead of "farmer" and it drove me nuts until I scrutinized that block of text and realized

tawdry hazel
#

!ask does anyone know if it's possible to create custom coop/barn buildings that are not affected by base game recolors/mods (I have the warm stalls and cozy boxes for example) - This would probably be done as a C# mod (maybe?) I just want to know if it's possible to do it as a smaller thing, like the SVE premium coop and barn but just that. A third type.

ocean sailBOT
#

Ask your question or describe your issue here, and someone will help if they can!

brittle pasture
#

(you dont need to add !ask to every question SDVpuffersquee )

tawdry hazel
#

my bad

brittle pasture
#

and sure you'd add a custom animal building that can accept coop/barn animals with its own interior

tawdry hazel
#

but wont it be considered a regular coop?

brittle pasture
#

if it's its own building type with a separate ID, no

#

you can set it to accept Coop animals

tawdry hazel
#

ahhh

#

But that's definitely a c# mod right

brittle pasture
#

nope, plenty of standalone animal house content packs out there

tawdry hazel
#

or like is there a framework

#

oh ok

brittle pasture
#

the SVE premium barns/coops are good examples actually; they are completely standalone and not upgrades to existing coops/barns

#

just CP

#

[[Modding:Buildings]]

tawdry hazel
#

ooooohhh

#

sorry

#

thank you!

brittle pasture
tawdry hazel
#

oh i've see that one

#

cool

#

is there a way to make a building only be build over a water tile? probably, right?

brittle pasture
#

unfortunately nope

tawdry hazel
#

oh shit rly?

#

like don't the water tiles have a specific custom property?

#

water: T

#

maybe I'm overcomplicating (I thought abt making the mod ask for that, ya know? is it a water tile?)

#

ur right

#

there's absolutely no need to make it like that :p

#

okay thank you so much 🙏

gaunt orbit
#

I looked into modifying placement logic before but gave up bc the transpiler required would be extremely complicated

lucid iron
#

I think smart building let you do that right

#

Put stuff on the waters

#

It's a user facing mod tho

brittle pasture
#

though i wouldnt be surprised if smart building just yote all the logic

gaunt orbit
#

That's the thing

#

Plonking down a building wherever is trivial in c#, and even modifying the on-placement checks isn't terrible, the hard part is editing the construction menu logic

#

Since that is entirely separate and self-contained inside the menu

#

CarpenterMenu.Draw is just too damn big

calm nebula
#

Please, wren

#

My fish ponds

#

On water

#

Please

lucid iron
#

I'm assigning this jira to selph of CC (and BB) aka CB fame

calm nebula
#

CC. BB, CB?

gaunt orbit
#

Hey I want it myself for buildable bridges but even I'm not enough of a genius to be confident writing a patch for that

calm nebula
#

We rating bonds now?

lucid iron
#

Hmm for a bridge

#

Can u use the additional placement tiles

#

Like make the building itself 2x3

#

Add another dangling 2x3 additional placement

gaunt orbit
#

The actual building itself wasn't tricky, what I couldn't do is make it so that it had to be placed on a shoreline

lucid iron
#

Letting the player walk over that is exercise for the reader

calm nebula
#

Wren what if I just want a bridge over this bush for no reason

#

Plz let me

gaunt orbit
lucid iron
#

Maybe we need Khloe back

#

For the tmx buildings

gaunt orbit
#

Someone did make a tmx buildings mod

#

For 1.6

lucid iron
#

But yeah patching tile check seems very succ

lucid iron
calm nebula
gaunt orbit
#

The CarpenterMenu is really the only problem that seemed too complicated to solve

void aspen
#

make the whole valley the shop zone

uncut viper
#

just bring back Storm modloader maybe itd help here

brittle pasture
#

(I did have ideas for a water fish pond, but my idea is even more ambitious and would involve the pond morphing its shape to fix the water body/shoreline)

ornate locust
uncut viper
#

be glad thats all i did

ornate locust
#

D:

royal stump
#

re building patches, the thing I do in Build On Any Tile is just patch GameLocation.IsBuildable, which lets you pave over anything
but notably it doesn't know why it's being called, so you'd need to keep track of whether it's being called for a particular building somewhere
(static field, transpile calls, w/e)

lucid iron
patent lanceBOT
brittle pasture
uncut viper
#

thank you for the support chu

royal stump
#

also if anyone does do that, be careful about letting anything place over terrain features, the build menu (or some method, idr) just deletes them underneath

long jungle
#

Hi! Is it possible to make a completely new Shop UI with just CP?

lucid iron
#

Kind of

brittle pasture
#

you can make themes

lucid iron
#

You are allowed to customize the theme extensively see qi shop

#

The inventory menu is not themeable tho

long jungle
#

Ah wait, sorry. I meant, is it possible to make a new shop with just CP?

brittle pasture
#

yep

long jungle
#

Is it possible for that shop to be accessed via furniture or does it have to be an NPC, or even an NPC placeholder?

brittle pasture
#

need SpaceCore/MMAP/Calcifer for putting shops on furniture (like the furniture catalogues)

#

if it's just a static map tile though you don't need an NPC

long jungle
#

I see. Thanks!

#

Last thing

#

Is it possible to make it so that the cost to buy an item is coins + a weapon/ring/boots/trinket?

#

With just CP

lucid iron
#

Yeah trade items

brittle pasture
#

yes you can have money cost and trade item

#

think desert trader for the latter

lucid iron
#

Check wiki docs on shops

barren tapir
#

Am I doing something wrong? I'm trying to have a message print to the console when the witch event occurs.

long jungle
#

Thank you so much! I'll start studying about that now.

Just needed to find out quick if it was possible. And now I know.

Thank you guys!

calm nebula
#

Esca plz let me rotate building

royal stump
royal stump
lucid iron
brittle pasture
royal stump
#

(I'm still worried about just making a remove building action, it seems messy)

brittle pasture
#

(nothing would)

barren tapir
#

I FIXED IT!

brittle pasture
#

oh wait wrong reply

#

discord why

long jungle
#

Just for fun, is it possible to rotate building sprites upside down? SDVkrobusgiggle

lucid iron
#

i mean u just do it in content patcher Dokkan

long jungle
#

That would be so wonky

whole prism
#

i like eating flowers

barren tapir
#

I accidentally misspelled something in the manifest 😅

long jungle
barren tapir
#

Now its time to learn how to do tile actions!

calm nebula
void aspen
#

ro ta te

fleet oxide
#

I have a general json question. I'm running the command '''temporaryAnimatedSprite TileSheets\animations 1920 256 64 200 100 4 30 15 15 false false 1 0 1 1 0 0\emote {{ModID}}.Boris 16\beginSimultaneousCommand''' in an event, but it's happening during a quick question where I'm using \ for all of the commands. And it isn't recognizing TileSheets\Animations as a location, it thinks I'm trying to do a new command. Does anyone know how I'm supposed to format this correctly?

void aspen
fleet oxide
#

Sorry, I don't know how to comment code in discord 🤡

lucid iron
#

Lavaland farm

fleet oxide
#

All of the single slashes there are actually double slashes in my code

royal stump
fleet oxide
#

Oh thank you! so it would be 'temporaryAnimatedSprite TileSheets\animations 1920 256 64 200 100 4 30 15 15 false false 1 0 1 1 0 0\emote {{ModID}}.Boris 16\beginSimultaneousCommand'

royal stump
#

` as in the back-tick symbol below tilde ~

#

depending on keyboard layouts