#making-mods-general

1 messages ยท Page 107 of 1

uncut viper
#

generic objects i mean

next plaza
#

Ah

uncut viper
#

but they specifically mentioned trying an array

lucid mulch
#

its all moddata and not customfields

lucid iron
#

i hope this means the framework lets me draw funny shape to use with my watering can

gaunt orbit
#

it does if you accept json strings
extension assets are definitely the better way though

uncut viper
#

im just reiterating what they were talking about last night

next plaza
lucid mulch
#

I cant remember if the new Data/Tools allows specifying moddata to initialize

next plaza
#

I think it does?

#

I think you can set various fields at least

lucid mulch
#

ah yeah it does

#

but it means it only applies on tool creation

#

so just loading the mod wont make existing tools powerful

next plaza
#

Yeah, that is a big problem with it

gaunt orbit
#

custom fields is definitely the better option

next plaza
#

Or good depending on use case I guess

#

(Mainly for custom tools)

#

(Which I know blueberry has been really enjoying exploring the implementation of)

lucid mulch
#

if they are doing custom upgrades then its useful, but customfields could have done that anyway iirc

gaunt orbit
#

it's too bad stardew uses type checking for tool type. it would be nice to be able to make a paxel

#

or I guess just a paxe since shovels don't exist in stardew

calm nebula
#

Be the change

brave fable
#

it's too bad stardew has all these custom types for tools and still just lumps all the custom behaviour in a couple of methods around the world that simply check for the type anyway

blissful plover
#

Is anyone interested in updating a couple of mods? I think the mod creator has quit and has given permission on his page to anyone that wants to update, or use his mods in creating other mods. As long as he gets credit for the original.

lucid iron
#

im interested in teaching you how to do it

blissful plover
#

you are? I am like illiterate when it comes to mods.

lucid iron
#

!anyonecancook

ocean sailBOT
#
blissful plover
#

Maybe this one will be easy.. LOL its a Shed that I love.

#

I can cook. ๐Ÿ™‚

lucid iron
blissful plover
#

where do I start?

lucid iron
#

so did you try to load them up in current version of game

#

to see what is erroring

brave fable
blissful plover
#

Yes. and there is NO ERROR. Nothing at all happens.

lucid iron
#

ig u also gotta tell us what mod

teal bridge
#

If it's nothing at all, then I'd guess it's a content pack for some framework that isn't installed.

blissful plover
#

zyr's Multipurpose shed

latent mauve
#

Make sure you look at the trace log, too, and if it's a patch, run a patch summary.

#

ok, it's a CP mod, so first thing is checking the paths in the content file

#

To make sure the targets are right

blissful plover
#

I don't know how to do that either. It used to require extra map layers, but on his page, he said to delete the dependency, so I did.

teal bridge
#

And there it is, Extra Map Layers.

blissful plover
#

Isn't it built in now though?

teal bridge
#

Is that installed?

blissful plover
#

no its obsolete

#

It was. But it ignores it.

latent mauve
#

Extra Map Layers won't likely need to exist since its obsolete, but you MIGHT need to rename the layers on the map files to align with vanilla

lucid iron
#

another thing to do is update the content patcher version

#

2.4.0

#

*the format version in content.json

blissful plover
#

Ok. Just type that in place of the last?

lucid iron
#

this part disables cp migrations, which could have failed to correctly migrate mod but hid the errors

blissful plover
#

I don't see a reference to Content Patcher in content.json

hard fern
#

Format:

#

all the way t the top

blissful plover
#

Oh.

#

ok i was looking for CP Or Content patcher, etc.

#

Is that all I need to do?

latent mauve
#

huh. That mod looks like it uses Dynamic tokens that are set by the config, but the actual asset FromFile for the shed is looking for {{Layout}} which isn't actually set as a Dynamic token. Maybe they just missed that one?

#

Try running the game with the Format changed and see if there are errors now.

#

Also I just checked the map files, no renaming of layers needed, they already follow the vanilla structure for the bonus layers (Back, Back1, Buildings, Buildings1, etc.)

hard fern
#

what do back1 and buildings1 do different from regular back and buildings?

latent mauve
#

They draw the tile on top of the normal layer without the number, in the order of the number.

brave fable
#

(they're also purely decorative, and no tile properties or collisions will be checked)

latent mauve
#

It's for visual drawing layers

#

(you can also apparently do silly things like add a -1 instead to draw under the base layer, though I've not tried it.)

gaunt orbit
rancid temple
#

Be the transpiler you wish to see in the world

blissful plover
#

its slow to load but so far I've got a bunch of red. But nothing refering to this mod.

gaunt orbit
#

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

calm nebula
blissful plover
ocean sailBOT
#

Log Info: SMAPI 4.1.7 with SDV 1.6.14 build 24317 on Microsoft Windows 11 Home, with 110 C# mods and 267 content packs.

gaunt orbit
#

oh I meant making a paxe, but I can only imagine what went into Shovel

brave fable
#

you want the tool, you play the fool

latent mauve
#

Trynket, try running a minimal setup if you're trying to fix a mod specifically. Only the mod and its dependency to start.

gaunt orbit
#

maybe I was the tool all along /jk

calm nebula
blissful plover
#

ok. I can do that.

calm nebula
#

Thankfully, a year away seems to have restored that

latent mauve
#

you can figure out the mod conflicts after just in case

blissful plover
#

but then when I go to check out the mod won't I lose a bunch of stuff?

rancid temple
#

I was thinking about what it would take to make a paxe yesterday lmao

#

I think every time I start a new save I have the thought "I fucking hate having an axe and a pickaxe"

blissful plover
#

Or should I start a new save just for testing? I need to be able to upgrade my shed.

latent mauve
#

Make a new save to test with

hard fern
#

i mean ๐Ÿค” this is why you do a new save

blissful plover
#

ok

hard fern
#

so you dont mess up your others

#

side eyes my 7 different test saves

latent mauve
#

There are debug commands to give yourself money and items to test a shed build and upgrade quickly on a new disposable save. >_>

hard fern
#

the mods i always keep for testing are cjb cheat/item spawner, noclip, debugmode, etc... because i kinda hate console commands ๐Ÿ˜ญ me and my fat fingers making typos 5 times ina row

gaunt orbit
# blissful plover ok. I can do that.

so you need to reinstall custom backpack, for one thing.
there's also something feeding nulls to a dictionary, but I'm not sure what without looking at the code for CopperStill

blissful plover
#

I talked to someone about CopperStill. ITs linked to Cornucopia. There are a few issues so they are working on it but it still works.

gaunt orbit
#

based on the code it looks like some mod has an item with a null name

wheat finch
#

Quest article on the mod wiki is a stub and the only thing in the migration guide about quests is that they have string IDs. So I'm guessing there's not an easy way to mod quests with CP and I should convert my void ghost pendant mod to a special order instead of a quest? Quest framework is obsolete and the mod list doesn't list a replacement for it. Thought I'd ask before I make a poor attempt at a CP patch for my three-part quest that is doomed to fail.

gaunt orbit
#

it's kind of weird that it's not just using the ID instead

blissful plover
#

Does is say NULL . If i searched for it would that be it or would it be blank

gaunt orbit
gaunt orbit
brittle ledge
#

Quests are doable in 1.6, I believe, I just don't think anyone's looked into it enough to write a tutorial for it?

rancid temple
#

I know it's come up a few times and it seems like people have had success

blissful plover
#

So, now How do I check this for errors? Its a brand new vanilla save. How do I get a big shed? LOL

#

It only works with the Big shed

wheat finch
#

That would make sense too. Perhaps I'll give it a shot. Worst case Pathos sees me posting and comes to my rescue lol.

rancid temple
#

CJB to get the materials to build a shed, CJB to instant build, CJB materials to upgrade

gaunt orbit
#

there's a debug command as well

#

I think debug build BigShed x y IIRC

tardy adder
#

Ok I have been playing with CS Critters and I am still not sure how chancy is chance 9-9

wheat finch
#

Ooh I wonder if RSV did it. Time to dig through their files.

blissful plover
#

Do i have to put a value in x and y?

rancid temple
#

Yeah, depends on where the issue is happening, I generally just test by doing stuff as close to as regular game behavior to make sure it's working as I would expect

blissful plover
gaunt orbit
#

also sidenote thank you so much @rancid musk for the manifest builder package, it's a lifesaver

wheat finch
#

How did this mod of mine ever work? I can't tell anywhere in here where I ever told it to trigger the quest only when reaching 10 hearts of friendship with Krobus.

brave fable
#

it's perfectly possible that it didn't work at all SDVpufferchickhug

hard fern
#

SDVpuffersweats how many quick questions can i put in one quick question

wheat finch
#

It had to have at one point or I wouldn't have released it (and would have had a bunch of comments about it on nexus) so ๐Ÿคทโ€โ™€๏ธ

brittle ledge
hard fern
#

like, ex: if i wanted to make branching dialogue

brittle ledge
#

oh, so you're asking whether you can nest them? Pretty sure you can, yeah

hard fern
#

ooh

slender badger
#

Yep, you can! I have nested quickQuestions that lead into sub-branching events in Secret Forest Walk if you want an example

#

Well, not specifically nested questions, but I use switchEvent to move to a sub-event for the branches

tardy adder
#

How to make sprinklers temporarily cannot place SDVpufferthinkblob

blissful plover
#

Ok , so I loaded a test save, with only the shed mod, CJB Cheats and Item Spawner and Instant building. I got an upgraded shed. Nothing. when I open my menu and go to the controller tab, and scroll down, there's NO option to configure mods.

#

I show no errors, red or yellow.

#

any ideas?

rancid temple
#

Did you install GMCM?

blissful plover
#

haha.. no.

#

anything else I should install? haha.. as you can tell this is all new.

rancid temple
#

Mmm, my test list usually includes Fast Animations and Skip Intro but they aren't necessary, just gotta make sure Console Commands is still in there as well

#

And CP if this is a CP mod

slender badger
#
Stardew Modding Wiki

So you decided to create a mod? Congratulations! Whether it was your long-standing dream, or just got peer pressured into it by Calcite, there's a place for you among Stardew Valley modders.
Now, with your code ready and armed with some courage you're about to start the long, grueling process of... Playtesting. While some easy little tricks can ...

calm nebula
#

Can we peer pressure you into playing the gamw

slender badger
#

Maybe, I am pretty susceptible to "ooh, this thing my friends are playing looks fun, I want to play it too" ๐Ÿ˜†

knotty phoenix
#

wait, modders are still allowed to play the game?

tender bloom
#

only when we're good

next plaza
#

Wait... aquarium...

calm nebula
blissful plover
#

Ok. Nothing. ๐Ÿ˜ฆ

hard fern
#

Bad modders get put in the scope creep machine

next plaza
blissful plover
#

Is that Console Code?

next plaza
#

(Let's ignore I'm semi on a modding break myself)

next plaza
calm nebula
rancid temple
#

ConsoleCommands is a mod that ships with SMAPI

blissful plover
#

I am trying to update a mod and I am new to this so, I am getting help.

#

oh.

#

where do I load that?

rancid temple
#

Along with SaveBackup

#

If you delete them, you'll have to reinstall SMAPI I think

#

I'm not sure if there's a better way to get them back lol

uncut viper
#

"everyone has console commands, it comes free with your smapi"

rancid temple
#

If you just moved your mods out of the Mods folder, just move ConsoleCommands and SaveBackup back, but like they don't matter for testing per se

#

ConsoleCommands is just nice if you want to avoid having things like CJB for whatever reason

#

Today in "why isn't this working" coordinates that are out of the possible screen view are pretty worthless

#

Unless your intention is to hide something where you'll never be able to see if it's working

lucid iron
#

wait

#

can you put a chest at -1,-1 then

wheat finch
#

Anyone recall what uses conditions formatted like "z winter"? I found a working mod that uses CP to create new quests but it uses those conditions not the more layman friendly "season winter" noted in CP's docs.

tender bloom
#

yes unless someone else has already SDVkrobusnaughty

blissful plover
#

I don't see console commands

#

hmm..

tender bloom
#

(one of the horse storage mods used a chest out of sight iirc)

wheat finch
#

Didn't console commands get replaced with default cheats?

rancid temple
#

Ultimately, not having ConsoleCommands won't affect your mod working

wheat finch
#

Default On Cheats it looks like.

tender bloom
#

I don't think console commands went anywhere

rancid temple
#

Unless it's Lacey maybe? Because of the reflection lol

tender bloom
#

I definitely still have Console Commands

rancid temple
#

Not sure if that's still a thing at this point

uncut viper
#

console commands has not been replaced

velvet narwhal
#

i'm pretty sure ichor hasn't committed that much of a crime

hard fern
#

where is console commands going

wheat finch
#

Oh I had it confused with chat commands

blissful plover
#

OK I moved it.

rancid temple
#

Well, I know for sure ichor had I don't know if it's still being committed though

wheat finch
#

Sorry my bad.

calm nebula
#

With mumble global inventory right there

lucid iron
#

that is true

#

i just keep thinking about horse overhaul ok

blissful plover
#

ConsoleCommands is not in the mod folder. Its in the Stardew Valley Folder where the MODS folder is.

rancid temple
#

Oh yeah, it doesn't go in your mods folder, it's a mod for SDV

#

It goes in SMAPI's Mods folder

blissful plover
#

Ok

rancid temple
#

Just like all the other mods I suggested

devout otter
#

Yay NightTiles works. \o/

calm nebula
hard fern
#

is yall's console commands not in your mods folder?

blissful plover
#

I'm confused. It was in my Stardew Valley Folder, then in that folder was Mods, stardrop installed mods. etc.

rancid temple
#

I don't really know what to tell you about Stardrop, I don't use mod managers

#

If you're using Stardrop to test with, you need to figure out how you're supposed to have everything set up, because it's gonna be different from just slapping shit into your Mods folder afaik

brittle pasture
#

stardrop should be identical

devout otter
blissful plover
#

I"m not I am loading with team

devout otter
#

Any mods outside of that folder would not be managed by Stardrop and would always load.

rancid temple
#

With just Steam or did you set it up to launch SMAPI?

brittle pasture
rancid temple
brittle pasture
#

the folder thing is just a convention one that you can totally disable by just setting the "Stardrop installed mods" folder to be the same as the mod root

blissful plover
#

If Its the same, I get conflicts that say I have the mod installed twice and I need to remove one. I can have mods in both folders, but not the same mods.

brittle pasture
#

yes, that's how it works

blissful plover
#

I can load the game via Stardrop, and it will load only selected mods. or steam, or smapi, both will load all mods in the mods folder.

devout otter
blissful plover
#

But, I am trying to get this particular mod to load. No errors, no conflicts, just nothing happens.

velvet narwhal
#

i'm kind of lost in the context here, you're not necessarily supposed to see anything about console commands

#

if you type into smapi something like, debug warp farmhouse does it do it?

blissful plover
#

yes.

velvet narwhal
#

ok then it's working

brittle pasture
#

yeah Stardrop specifically hides Console Commands and Save Backup by default

velvet narwhal
rancid temple
#

It's not Console Commands they're having trouble with

brittle pasture
#

if they show up in logs, they are working

hard fern
#

๐Ÿค” how do i go about making a dummy npc (aka one who only shows up in events)

blissful plover
#

So, the mod shows up in my log, and says it loads just fine, LOG:

#

19:10:40 INFO SMAPI SMAPI 4.1.7 with Stardew Valley 1.6.14 build 24317 on Microsoft Windows 11 Home
19:10:40 INFO SMAPI Mods go here: C:\Program Files (x86)\Steam\steamapps\common\Stardew Valley\Mods
19:10:44 DEBUG SMAPI Waiting for game to launch...
19:10:46 DEBUG SMAPI Loading mod metadata...
19:10:46 DEBUG SMAPI Loading mods...
19:10:47 INFO SMAPI Loaded 5 mods: This section is hidden. Click here to show it.
19:10:47 INFO SMAPI Loaded 1 content packs: This section is shown. Click here to hide it.
19:10:47 INFO SMAPI (CP) Zyr's Immersive Multipurpose Shed 1.6.1 by Zyrnathos | for Content Patcher | Redesigns the shed to be more useful and, hopefully, visually pleasing. Immersive Version - Big Shed Only!
19:10:47 INFO SMAPI Patched game code
19:10:47 INFO SMAPI --------------------------------------------------
19:10:47 INFO SMAPI These mods directly change the game code. They're more likely to cause errors or bugs in-game; if
19:10:47 INFO SMAPI your game has issues, try removing these first. Otherwise you can ignore this warning.
19:10:47 INFO SMAPI - GMCM Options
19:10:47 DEBUG SMAPI Launching mods...
19:10:47 DEBUG SMAPI Mods loaded and ready!
19:10:49 INFO SMAPI Type 'help' for help, or 'help <cmd>' for a command's usage

#

Its the Zyr's mod I am trying to get to work.

uncut viper
#

!log please use this

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.

blissful plover
#

It just doesn't do a thing

uncut viper
#

type patch summary in the console and then upload the resulting log

blissful plover
ocean sailBOT
#

Log Info: SMAPI 4.1.7 with SDV 1.6.14 build 24317 on Microsoft Windows 11 Home, with 5 C# mods and 1 content packs.

uncut viper
#

you havent typed patch summary

blissful plover
#

I did type Patch summary. what do I do with it? its long

uncut viper
#

upload the log to that site like you just did

blissful plover
#

ohh. ok

ocean sailBOT
#

Log Info: SMAPI 4.1.7 with SDV 1.6.14 build 24317 on Microsoft Windows 11 Home, with 5 C# mods and 1 content packs.

uncut viper
#

ok, minor correction on my part: do that again but when you're in game and the save is loaded

#

(also in case anyone else ever asks you for one in the future, just know that they will also expect the command to be run when the save is loaded too, since thats when most of content patcher's tokens are ready. cant know what the location is before you're in a location, for example)

tiny zealot
blissful plover
ocean sailBOT
#

Log Info: SMAPI 4.1.7 with SDV 1.6.14 build 24317 on Microsoft Windows 11 Home, with 5 C# mods and 1 content packs.

blissful plover
#

Button, ok

wheat finch
#

Boo. The base quest data in the game is slash delimited string (is that what it's called?) that doesn't allow for non-gold rewards like friendship or items. At least not that I can decipher. Nor does it allow for triggering a letter afterward. I realized that the mod I thought was editing Data/Quests was actually editing Data/Events. Sigh.

uncut viper
#

have you made any other edits to this mod besides removing the extra map layers dependency?

wheat finch
#

I'll have to see if I can trigger the letters with HasQuest or something and attach the rewards to that. Unless Pathos swoops in and tells me that quests have been changed in the back end so I can use fields like game state queries for conditions and such.

brittle ledge
#

cosplaywrite, I think Pride in the Valley adds some quests, could check their code?

tiny zealot
uncut viper
#

you can if your quest completion involves giving someone something too, you can put the action directly in the quest data as part of their reaction dialogue

#

(also yes its a slash delimited string)

tiny zealot
#

ooh, good point from button

tiny zealot
rancid temple
#

Lacey's ConsoleCommands reflection

uncut viper
wheat finch
#

Button saving the day lol. My third quest in the string is supposed to give the player the void ghost pendant. Afterward the player is supposed to get a letter from the wizard and a friendship boost with him.

rancid temple
#

But yeah, I would like to know if Lacey just explodes if someone removes ConsoleCommands

blissful plover
#

I changed the Format to 2.4.0

tiny zealot
calm nebula
#

(Nothing)

blissful plover
#

And, on the posts on the mod page, it says to remove the dependency for extra map layers. It show how to do that on his page. Also gives permission to use and upgrade this mod.

calm nebula
#

Console commands just adds. Bunch of console commands

#

The system itself is on smapi

#

And the command lacey calls is in CP

#

Now

rancid temple
#

Ah

calm nebula
#

If Pathos were to rename the command

blissful plover
#

Are we running out of ideas for this mod?

tiny zealot
#

i also call one of my own, to be fair, which is part of why i use the queuing setup

uncut viper
#

im not actually sure why theres a bunch of HasFlag:HostPlayer things its complaining about, because i dont see any such tokens when i downloaded the mod

velvet narwhal
ocean sailBOT
#

Log Info: SMAPI 4.1.7 with SDV 1.6.14 build 24317 on Microsoft Windows 10 Home, with 3 C# mods and 1 content packs.
Suggested fixes: One or more mods are out of date, consider updating them

blissful plover
velvet narwhal
#

i am lost then, what was the initial problem?

blissful plover
#

The initial problem is that I get no errors or warnings but it does nothing.

velvet narwhal
#

wdym does nothing, It Just Works โ„ข๏ธ

#

this is not what the shed looks like base game

uncut viper
#

oh i see, i downloaded the non-immersive version

velvet narwhal
blissful plover
#

I mean I enable it, I go to my bigger shed and it still the same.

#

OOOOOHHH maybe I need to do that.

velvet narwhal
#

if you get annoyed with the "update this"

#

just open up the mod's manifest and set it to version 1.6.1

uncut viper
#

you have the immersive version

rancid temple
#

Did you enable it before building it?

wheat finch
#

My brain is broken. Gonna step away from it for the night.

uncut viper
#

which means i must ask, have you completed the requirements that the immersive version sets for it to unlock the bigger shed?

lucid mulch
brave fable
#

do you need to use the[Emily_Name] [Emily_Objective_0_Text] format for special order strings in custom entries?

velvet narwhal
lucid mulch
#

special orders feels like a thing that will bake into the save file, so probably

blissful plover
#

Ok I thnk thats what happened. I updated it to the new version and it was the immersive one.

lucid mulch
#

is this SpecialOrder Objectives?

brave fable
#

every localised string in data/specialorders entries

uncut viper
#

special orders seem to manually strip away the [ and ] and just load the rest as a translation key from Strings\SpecialOrderStrings

brave fable
#

i can't use localisedtext or i18n instead of patching into specialorderstrings?

uncut viper
#

theres a Tokenizable String parser for it but apparently thats just not used lol

#

you might be able to just give it a string

blissful plover
#

that did it.

brave fable
#

why do i always run into the worst patterns SDVpufferfush

blissful plover
#

it works now.

uncut viper
#

i think if it doesnt find a [ with a matching ] in it, it'll just return whatever is there

blissful plover
#

Oh thank you everyone. I am so happy to ahve this working. I love this mod. I dont know why but I just do.

uncut viper
#

glad its all good now!

blissful plover
uncut viper
#

(that said blueberry you cant use localizedtext tho bc it doesnt run it through a token parser)

#

CP i18n token should be fine though but it wont update again after

#

the relevant code is in SpecialOrder.MakeLocalizationReplacements which is used for SpecialOrder.GetName()

#

which uses its questName value, which is set to whatever is in your Special order data

#

though i forgor you asked about more than just the name

tardy adder
#

Hmm I'll figure if sprinklers can be with mistyspring.ItemExtensions_OnBeingHeld trigger

lucid mulch
#

ok yeah just took a peek, yeah thats getting baked into the save big time

uncut viper
#

the same MakeLocalizationReplacements is used for its general Parse method tho so maybe its fine idk

tardy adder
#

Will soon send for help, dis making me lose sanity

cinder goblet
velvet narwhal
#

the trenchcoat? when he goes to the movies with you

#

oh wait not those

#

the world* sprites? or his portraits?

cinder goblet
rancid temple
#

He kinda looks like he's dancing

#

The first one is a hug I'm pretty sure

velvet narwhal
#

i know SVE uses it for one of his heart events he do a little jiggy

lucid mulch
#

the square brackets stuff are used to reference Strings\\SpecialOrderStrings:<Whatever> but you can just use i18n when editing that strings asset

velvet narwhal
#

considering i can't read anymore i think that means it's time for me to go to bed woopsGoodnight

brave fable
#

i feel so lost without having played any of this new stuff, i can't even find where the unique special orders are added

#

like sure the normal ones are at the board but qi challenges and d. festival orders don't even show up in the data files

hard fern
#

Same

brave fable
#

oooh there's a qi qallenge board

#

maybe i can just set one from dialogue or something

rancid temple
#

Guess you'll have to play, you know for research purposes

brave fable
#

lol no

lucid mulch
#

its in Data/SpecialOrders for me...

brave fable
#

when i say add i mean to the player's quest log

#

yes they're in their own data file haha

lucid mulch
#

special orders like that show up in FarmerTeam.specialOrders not the quest list

#

as farmhands share the same special order instance

brave fable
#

aren't special orders shown on your quest log?

lucid mulch
#

the quest log shows both FarmerTeam.specialOrders and personal quest list

#
/// <summary>Get the quests which should be shown in the quest log.</summary>
protected virtual IList<IQuest> GetAllQuests()
{
    List<IQuest> quests = new List<IQuest>();
    for (int j = Game1.player.team.specialOrders.Count - 1; j >= 0; j--)
    {
        SpecialOrder order = Game1.player.team.specialOrders[j];
        if (!order.IsHidden())
        {
            quests.Add(order);
        }
    }
    for (int i = Game1.player.questLog.Count - 1; i >= 0; i--)
    {
        Quest quest = Game1.player.questLog[i];
        if (quest == null || quest.destroy.Value)
        {
            Game1.player.questLog.RemoveAt(i);
        }
        else if (!quest.IsHidden())
        {
            quests.Add(quest);
        }
    }
    return quests;
}
brave fable
#

i think ive confused us both. i was just wondering where in the game you happen to be given (in gameplay) unique special orders lol

lucid mulch
#

events, trigger actions, etc can just start special orders

brave fable
#

but dw, ive found it

lucid mulch
#

including the special order boards

#

there is the AddSpecialOrder <order ID> trigger action, so anywhere that can trigger actions (like dialogue's $action, events action, mails %action, along with the triggers themselves)

uncut viper
#

buffs and museum rewards actions my beloved (ive never used them)

brittle pasture
#

(mail can also do %item specialOrder)

uncut viper
#

shops is another big one tho dont forget that

lucid mulch
#

gotta love the addition of trigger actions to cause duplicate paths in various ancient engines

brittle pasture
#

(which I think is necessary for the fancy accept button to show up)

#

(the trigger action just adds it silently)

lucid mulch
#

ah yeah that would be true

cinder goblet
#

How would I mod SVE? just some contentpatcher stuff.

wheat finch
#

That way lies madness. But generally yes CP.

rancid temple
#

It's similar to modding the base game, your targets just have to be the ones SVE creates and you generally should set your mod as dependent on SVE so it's load order is correct

#

I would look for a mod that edits something from SVE to find an example of it being done

normal latch
#

Okay so seeing as I'm genuinely considering doing this, I come with a question

#

I'm already looking at the wiki for unpacking .xnb files, but I'm mostly just wanting to know what file would have the graphics for the grass/path tiles that are all throughout the valley

#

I ask this cause I noticed that 1.6 had added in new tiles, and as those aren't in Eemie's Map Recolor ((the one uploaded on ModDrop)), and the person who uploaded the mod is AFK forever, I thought "Hey, I can recolor things, it'd be supposedly easy"

#

But a bit of guidance wouldn't hurt, I'd think

rancid temple
#

Once you've unpacked, they'll be in Maps, as for which ones they are the easiest way is to use Tiled and open the offending map and see what tilesheet is being used there

normal latch
#

And what is Tiled, exactly?

rancid temple
#

!tiled is this the command

ocean sailBOT
#

If you want to make mods that add or edit maps:

  1. Use Tiled to edit .tmx or .tbin files.

  2. Refer to the Maps wiki page for details on how maps work in Stardew Valley.

  3. Content Patcher allows you to create custom locations through editing Data/Locations

  4. Vanilla Maps can be edited via Content Patcher as well: EditMap

rancid temple
#

Hey hey

normal latch
#

I see I see

rancid temple
#

It's a map editor, basically

normal latch
#

...okay ngl, for someone like me, this is all a little more complicated than I thought

slender badger
#

Basically all you need to do is compare the files in Eemie's mod with the unpacked vanilla files

#

Hit enter too early lol, one sec

#

And see which parts are missing. Pretty much all of the 1.6 files are in separate files, but Eemie's was never updated for 1.5 either, I think, so you'll have a bit more to do there. Once you've found anything missing, you just recolour the missing textures and delete everything that you're not recolouring so that it's a transparent file with only the recoloured bits

#

For the coding, it's just a simple EditImage code probably with an overlay. You can check the code for more recently updated recolour mods to see how they do the same thing, but the basic concept is also explained in the Content Patcher documentation

normal latch
#

hhhh, the coding part I may need help with

#

I'm not exactly super confident when it comes to doing that part myself

slender badger
#

That's fine, you can give it a shot and ask for help in here

normal latch
normal latch
#

I'm mostly just wanting to make sure I understand what's needed for the recoloring part of this

#

Haha sweet, I understood correctly

normal latch
#

Well so far, at least without going to Calico Desert, I have an idea of what would need recoloring around the valley"

Grass tiles, specifically in the lighter grass and grass around paths
Ground around water
Some trees, like the Mahogany ones
Possibly the big trees in Cindersap Forest

shut grove
#

can I/how do I add conditional recipes? like, one version of a recipe for vanilla one for when someone has SVE installed for example?
This is my cooking recipes for example, but I'd want to add butter to these 2 if the player has SVE since SVE adds their own butter.

    "Changes": [
        {
            "LogName": "Recipes",
            "Action": "EditData",
            "Target": "Data/CookingRecipes",
            "Entries": {
                "{{ModID}}_Cooking_GarlicBread": "216 1 248 1/4 2/{{ModID}}_GarlicBread/f {{ModID}}_Marie 3/{{i18n: food.GarlicBread}}", //Bread Garlic
                "{{ModID}}_Cooking_CheesyGarlicBread": "216 1 248 1 424 1/4 2/{{ModID}}_CheesyGarlicBread/f {{ModID}}_Marie 3/{{i18n: food.CheesyGarlicBread}}", //Bread Garlic Cheese
            }
        },
    ],
}```
#

I know how to do it for map patches

#

just not for something like this

uncut viper
#

you can do another patch after yours that edits the entries you just added, but with a HasMod token When condition on it

tiny zealot
#

principle is the same: use When conditions to make different edits depending on whether SVE is installed

shut grove
#

so, like this?

{
    "Changes": [
        {
            "LogName": "Recipes",
            "Action": "EditData",
            "Target": "Data/CookingRecipes",
            "Entries": {
                "{{ModID}}_Cooking_GarlicBread": "216 1 248 1/4 2/{{ModID}}_GarlicBread/f {{ModID}}_Marie 3/{{i18n: food.GarlicBread}}", //Bread Garlic
                "{{ModID}}_Cooking_CheesyGarlicBread": "216 1 248 1 424 1/4 2/{{ModID}}_CheesyGarlicBread/f {{ModID}}_Marie 3/{{i18n: food.CheesyGarlicBread}}", //Bread Garlic Cheese
            }
            "When": {
                "HasMod|contains=FlashShifter.StardewValleyExpandedCP": false
            },
        },
    ],
}```
#

and then just have a second section with it being true

rancid temple
#

You don't even need to track the false

#

The first one can just be normal and the one after can be true and it'll overwrite the first

#

If it helps you keep track of it easier though, that will work

brave fable
#

ah yes, setting a tool to giftable means spacecore crashes instantly since it expects all giftable items to be objects

[SpaceCore] Exception while handling event SpaceEvents.BeforeReceiveObject:
System.NullReferenceException: Object reference not set to an instance of an object.
   at SpaceCore.VanillaAssetExpansion.VanillaAssetExpansion.SpaceEvents_BeforeGiftGiven(Object sender, EventArgsBeforeReceiveObject e) in C:\Users\space\Programming\StardewValley\StardewValleyMods\SpaceCore\VanillaAssetExpansion\VanillaAssetExpansion.cs:line 154
   at SpaceShared.Util.InvokeEventCancelable[T](String name, IEnumerable`1 handlers, Object sender, T args) in C:\Users\space\Programming\StardewValley\StardewValleyMods\SpaceShared\Util.cs:line 250
next plaza
brave fable
#

in my defence, canBeGivenAsGift is Item virtual

next plaza
#

But... It's NPC.tryToReceiveActiveObject

#

I'm surprised the game doesn't have problems

brave fable
ocean sailBOT
#

Log Info: SMAPI 4.1.7 with SDV 1.6.14 build 24317 on Microsoft Windows 11 Pro, with 26 C# mods and 5 content packs.
Suggested fixes: One or more mods are out of date, consider updating them

brave fable
#

ignore the spacecore serialisation error, there's objects in the save that i no longer serialise

next plaza
#

Ah, vanilla just returns without doing anything with if it isn't an object

brave fable
#

oh does it? that sucks lol

#

giftable tool my beloved

next plaza
#

Instead of failing and removing all serialized mod types to still load

brave fable
#

i wanted to use it as a trade-in item for a special order through a wonderful setup of event > add item + add special order, use item on world > get context tag, give item with context tag > fulfil special order delivery, receive original item

#

pls it's only a warning, noone reads those

next plaza
#

I don't understand why you need a tool to be giftable still ๐Ÿ˜›

brave fable
#

well i could just pile the on-click-world behaviours into an extension of object but i figured it was worth trying tool

#

now i hate tool though

next plaza
#

It's sad you spent so much time working on tools and it turns out it was all for nothing

brave fable
#

also ideally i didnt want the item to be giftable anyway but it has to be to turn in a special order lol

#

such is life

#

anyway i need tool knowledge for secret scissors

#

or maybe i dont, that could also be a terrible idea, but i drew a sprite so it's worth a shot

rancid musk
#

This makes me think of the "A developer walks into a bar and orders a beer. Orders 999 beers. Orders -1 beer. Orders null. A customer walks into the bar and asks where the bathroom is. The bar catches fire." or however the original goes

brittle pasture
#

patch right click to transform the tool into an object clone upon right clicking a villager

uncut viper
#

can you just secretly replace the tool with an object when the player goes to right click

brave fable
#

hmmm i think this is more 'why did you push a commit that prevents the spacebar from heating up? i was using that to brew tea'

next plaza
#

Prevents the spacebar from heating up, or using the spacebar to heat your desktop?

brave fable
next plaza
#

Very important information for future tea brewers

fiery cobalt
#

I finally finished a seasonal villager!

#

So that's one down and alot too go

brave fable
#

debugging is so much simpler when u can just bury ur face in a bouquet of flowers at ur own desk

#

i can just hide from the bugs. like another, larger bug

next plaza
#

Until you find bugs in the bouquet

brave fable
#

it's a feature SDVitembouquet

#

augh moving to object means i cant use the wonderful ClassName field that tools get. what a world

next plaza
#

Alas, you may have to patch the item registry create function

#

(I did that once)

brave fable
#

oh it should be fine, just needs a new itemdatadefinition thing

#

just another step in the wrong direction lol

next plaza
#

Uh

#

Making a whole new item type for a single item seems like overkill ๐Ÿ˜›

brave fable
#

well it is, but if you want a custom type object you've gotta make a custom type object

#

it gets better, it's a temp item used for one special order lol

next plaza
#

Yeah... for the S&S bow I think I just patched item registry to return the custom item class for the given item ID

brave fable
#

oh right, a new bow. now that's a thought

next plaza
#

Sorta like it already does for slingshot

brave fable
#

more tools

#

is there any helper method for what used to be getSourceRectForStandardSpriteSheet before it was removed in 1.6?

#

it's like 5 times now i've wanted to get a source rect from a sprite index

#

Utility.getSourceRectWithinRectangularRegion?

next plaza
#

I'm not sure offhand, but if you've got the item object you can just use ItemRegistry.GetDataOrErrorItem(qualId).GetSourceRect()

brave fable
#

ah well that's the catch see

#

this is GetSourceRect()

next plaza
#

Ah, so you are going that route

brave fable
#

the famous subclass pagliacci is in town

next plaza
#

I don't know what a pagliacci is SDVPufferThink

#

It looks like Object at least uses Game1.getSourceRectForStandardTileSheet

#

(Or rather ObjectDataDefinition)

brave fable
#

oh, the original is grimaldi. nonetheless

spiral blaze
#

so I'm trying to redo all character portraits but I'm struggling to view the originals as they're all .xnb files and I'm not sure how to open them? Sorry if this is a silly question, I've never done this before

#

I'm wanting to view all of the characters like this

#

So that I know I'm getting the portraits the right order etc

uncut viper
#

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

spiral blaze
#

ohhh thank you โค๏ธ

#

I really appreciate how patient you all are โค๏ธ thanks @uncut viper !

spiral blaze
#

muffled sobbing as I realise there are 100 items in the vanilla folder to redraw

fossil osprey
woeful lintel
#

I think that's the reason most anime portraits mods are unmaintained, or only cover bachelors

spiral blaze
fossil osprey
robust robin
#

Does anyone know how to rename flavored items? I can get the parent item to work but all the flavors just show the original name with the parent description. For example, I'm pretty sure preserve_sheet_index_613 is Apple Wine, but I don't know what the target for the action would be or how to list the change for each name. For the parent item, "Wine_Name": "New Name" under entries for Strings/Objects worked but that doesn't seem to be the case for the rest of the flavored items????? I need help (also please reply to this thread so I can find your response later bc I have to sleep; thanks so much)

hallow prism
#

can you elaborate more about the context?

#

you want to make what? a custom flavored item like apple cider pear cider and so on? Use vanilla flavored items? else?

woeful lintel
#

damn... Seasonal Outfits mod is in the forever hidden jail

hollow hinge
#

i just make my own portraits but coding them is sometimes an issue

woeful lintel
#

myself and a lot of people here should be able to help with that if you want.

#

If you want to try to learn how to do it yourself, you can start by taking a look at that:

#

!CP

ocean sailBOT
tardy adder
#

Alright time to see if my trigger actions are triggering

hollow hinge
calm nebula
#

Goooooood morning (not)

woeful lintel
#

SDVpuffereyes 21:34

calm nebula
#

Well I hope you guys are having a great morning

#

Or evening

#

Or middle of thr afternoon break

hollow hinge
#

good tidings!

rancid temple
#

I spilled hot chocolate on myself SDVpufferpain so y'know

calm nebula
#

Running on two hours of sleep because fuck insomnia:P

rancid temple
#

Oof

foggy kiln
#

Someone knows a mod similar to the shopping cart mod? This mod stopped working after the 1.6 update, and I've been looking for a replacement.

rancid temple
foggy kiln
#

Oh, thank you for the reminder!

silver pelican
#

where can i find the fire animation for the fireplace?

rancid temple
#

Like the sprites?

#

Should be LooseSprites/Cursors

woeful lintel
#

I'm curious, why do you need them?

rancid temple
#

Near the bottom

brave fable
#

ah, i remember the nighttime event where dusty witnesses the witch firebombing your farm. hard to believe it's in the base game

rancid temple
#

A masterpiece of cinema though

silver sand
#

ok but event like that would go HARD

silver pelican
silver pelican
woeful lintel
#

It doesn't work?

rancid temple
#

Like furniture or map?

silver pelican
#

in a custom map xd i opened saloon and pierre's to see how it goes but couldnt find how it works or displays the fire animation.

rancid temple
#

Those are set in code

silver pelican
rancid temple
#

I did make a mod that lets you add interactable fireplaces

#

Otherwise you can do conditional map patches to add animated tiles

silver pelican
#

reallyyy? where is ittt 5058stonedyay

rancid temple
silver pelican
#

yipieee

rancid temple
#

Oh right, I still need to remove the beta stuff from this page lmao, it's all the same I just never changed it after the beta was over

silver pelican
#

Detailed guide as well. I'll try it out

rancid temple
#

Lemme know if you have any problems, I'm still not confident in the guides I write lmao

patent lanceBOT
#

me to finish patching up my npc : pensive (12h ago) [Requested by forsythia]

silver pelican
#

thank youu! ill do the other ones now. aSDVemoteowo

dusky charm
#

could anyone please explain to me how i can prevent a tile from having the tillable property when making a custom farm map? thanks

lucid iron
#

Need to remove Diggable tile property

dusky charm
#

yea but how lol

rancid temple
#

Most likely, by editing the tileset, selecting the tile and deleting the property

#

I'm assuming you're working in Tiled

dusky charm
#

ill check it out thx

rancid temple
#

Ugh, I thought my math for my stardrop mod was messed up again but I disabled it and my health values still seem way out of wack

#

I don't think I should have over 300 health at combat level 7 lmao

fervent horizon
#

Is there a way to change the skin of an animal based on the name it is given?

#

like a "when" trigger

rancid temple
#

Huh cool Nexus, I only have one mod apparently and I can't find any of the others by searching

fervent horizon
#

yeah, I was hoping to avoid that

rancid temple
#

We've been set free by Nexus

#

And then a notification about some stupid event, like no fix your dumb site first

lucid iron
#

You can turn that off

#

I turned off all except comment and bug report

rancid temple
#

Assuming that part of the site is working

tiny zealot
rancid temple
#

Lmao, I refreshed the main page and half the new mods for the day disappeared

lucid iron
rancid temple
#

It's probably still my mod, last time my math was broken I fixed it with the built in max health validation because my math was giving too low values, but the health validation only checks if max health is lower than expected and not higher lmao

rancid musk
#

Fun, I got another use comment asking me to update a mod that is already updated

tiny zealot
# lucid iron Yeah the notif config is pretty detailed

but clicking a toggle seems to work only about... half the time? (but it says "your changes were successfully saved" every time, and sometimes ones you previously set move themselves back. good job, everyone, high fives all around)

lucid iron
#

Leaving page when I toggle 1 thing seems to help

tiny zealot
#

other notes for next.nexus.com: when you are on a user's profile and you click to change tabs (e.g. "Mods"), there is no reaction whatsoever until the server response comes back, which can take multiple seconds. urgh

velvet narwhal
tiny zealot
#

saw this in a log from a Windows user (1.6.14/4.1.7):

[21:17:11 TRACE SMAPI]       Rewrote HatMouseLacey.dll to fix ArgUtility.TryGet method, ArgUtility.TryGetInt method, ArgUtility.TryGetOptionalBool method...
[21:17:11 TRACE SMAPI]       Rewrote HatMouseLacey.dll to fix LocalizedContentManager.LoadStringReturnNullIfNotFound (added missing optional parameters)...```
i do not get these rewrite logs in my linux game. do these methods have platform-specific differences and/or should i be concerned about them?
rancid musk
#

Those should definitely also happen in Linux

lucid iron
#

Is that the new string optional arg

rancid musk
#

(am I going to have to decomp the other os builds now)

#

The ArgUtility stuff is the ArgumentCaller stuff

#

So it can make slightly nicer error logs

tiny zealot
#

i would love to fix it but i had no idea it was happening

brittle ledge
#

Ichor, I'm windows, I could check if I can reproduce the issue when I'm home if you want?

tiny zealot
#

if you really want to, but it's not necessary

lucid iron
#

Is your lacey a build from source

tiny zealot
#

doesn't seem to be broken, and i'll get an updated decompile and sort out whatever i'm missing when i get to it

lucid iron
#

Instead of whatever version you put on nexus

tiny zealot
#

(that makes for a fun time when i see "update available" for my own mods SDVpuffersquee)

lucid iron
#

Yeah why does nexus show that

tiny zealot
#

i have a lot of questions about how nexus works /lh

ocean sailBOT
#

Log Info: SMAPI 4.1.7 with SDV 1.6.14 build 24317 on Unix 6.11.5.1, with 35 C# mods and 14 content packs.

rancid musk
#

Yeah, once you build against an updated Stardew then it's no longer an issue

lucid iron
#

really nice that you dont have to though, thank u rewriter-san

jolly bane
#

does anyone happen to know how I would put fish swimming around in a tank in a custom map I made for an event? so the fish already need to be there without me placing them in a tank as the farmer, thank you!

rancid temple
#

Unless someone has made a framework for it, that would require C#

brittle ledge
#

Or you could just do a temp actor, though you'd have to move/animate it yourself.

rancid temple
#

Oh for an event, apologies

#

Can you choose aquarium sprites for temp actors?

brittle ledge
#

I don't think you could grab them directly, you'd have to make a fake spritesheet basically

rancid temple
#

Ah okay, at least you could trim down the sheet and only include what you need then

mild gust
#

Hi guys ^^

#

Okay . I love stardew very much . And ive heard its pretty easy go mod .

#

*to

#

Sooo Like How can i begin ? I have zero idea about making mods ๐Ÿ’€

tiny zealot
#

welcome! we have a couple of links for that

#

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

tiny zealot
#

what kind of mod are you thinking of making?

patent lanceBOT
#

@astral prism: axon bodycam overlay (18h ago)

hard fern
#

do i dare test my npc now, or do other things instead hmm

calm nebula
#

Remind me in 12 days to look at asset prop and additional farms

patent lanceBOT
#

fiiiiiiiiiiiiiiiiiine (#6362005) (12d | <t:1732645468>)

robust robin
brittle pasture
#

The names for the flavored wines live elsewhere outside of strings/objects IIRC

#

looking them up rn

#

Huh actually 1.6.9 should have put all of them into Strings/Objects

#

Did you also change Wine_Flavored_Name (+ all the fruit-specific wine names)

calm nebula
#

Look at Cranberry Wine

shut grove
#

is it possible to make events require, say 3 hearts with 3 different people?

hard fern
#

im pretty sure it is? ๐Ÿค”

shut grove
#

didn't know if the requirements section had a limit on that

hard fern
#

well

inner harbor
shut grove
#

ok

#

I wanted to do some group events

hard fern
#

there's a bunch of different requiremens u can stick on there too

robust robin
brittle pasture
#

did you unpack the files

#

looking at the unpacked Strings/Objects should be self explanatory

lucid iron
rancid temple
#

Warp speed

brittle pasture
#

hmm would it go 3x as fast with 3 players

#

maybe both clients are updating the frames causing them to stack lol

lucid iron
#

yea maybe

#

will mention to casey later

#

imagine the zoooom

robust robin
faint junco
#

Good morning all.

With CP is it posable to add conditional recipes based on mods installed (ie if vanilla use X recipe else if hasMod use Y recipe)?

I found the "HasMod" token but the only example I can find just load a different asset with a different recipe.

rancid temple
#

When is a field used to indicate conditions for a patch block to be applied

#

So if you have a HasMod in a When for an EditData that adds a recipe, if the conditions are met, that patch block will be applied

#

If you want a recipe that's one way with just your mod but changes with another mod installed, create one patch block that adds your base recipe and then after that create another patch block that edits that same recipe but with a When to check for the other mod

#

This has come up a few times lately, I wonder if I should make a 5th example for crafting/cooking recipes lmao

lucid iron
#

are there mods that change where the obelisk warp targets are

faint junco
#

im guessing I can't just add the when to recipe like for example the "UpgradeFrom" block

rancid temple
#

No, recipes don't have any fields for conditionality like that

lucid iron
#

you could give the recipe in a trigger action

rancid temple
#

Kind of a separate thing from creating the recipe in the first place

lucid iron
#

ah right bolbthinking

rancid temple
#

I hate refactoring code SDVpufferweary

lucid iron
#

if you delete the code then it's not refactoring

rancid temple
#

Why couldn't I just write it correctly the first time, what's wrong with me

#

Unfortunately Nexus came back up so I guess I will soldier on

lucid iron
#

i think it is a sign of improvement to look at old code and definitively say "wow thats bad"

rancid temple
#

Can't wait to do it again in a couple months lizDerp

runic rose
#

Hi all! I'm new to modding and need some help troubleshooting a simple content pack I made. I'm just trying to replace the red mushroom icon with one I made. The content.json looks right, checked it with a json checker. smapi says it's loading my mod, but nothings happening in game. Thoughts?

rancid temple
#

!json share the link, the validator only checks syntax it doesn't know if the code is correct or not

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.

rancid temple
#

I wonder if this command has too much general information

#

It's typically used to try to get people to share their jsons but that is like less than a third of this commands actual function

tender bloom
#

I do think we semi-regularly get people asking "what's a json and why do I need it?"

#

plus people going "how do you manage to get your braces to work??"

#

maybe it should be more than one command?

rancid temple
#

Yeah, I think the command is useful, just wondering if a more directed one would be better

uncut viper
#

if anything i think it should be used more when people ask what text editor to use

tender bloom
#

like one just for the json website?

#

!jsonupload? !jsonwebsite?

#

!sendjson?

rancid temple
#

The log command is very direct about being used for troubleshooting, which is what got me thinking this one is too general lol

teal bridge
uncut viper
#

to me that seems like it's because people generally know what a "log" is when you ask for it, but people might not know what a "json" is when you ask, or may think it's Stardew specific

#

(emphasis on the word generally)

teal bridge
#

Agree it's better to link the json command to questions people actually ask, specifically uploading logs and choosing a sane editor. (Which is pretty much what it already is, except for the first line.)

uncut viper
#

Also feel free to interrupt any time mycena

runic rose
#

youre fine, im just uh...well im wondering what "share the link means" and was wondering if a screenshot of my code would suffice....

hard fern
#

Guess what

runic rose
#

(I'm sorry, im a complete newb haha)

uncut viper
#

when you upload your json to the site, copy the URL afterwards

#

you can paste that URL here so everyone can see what you uploaded

runic rose
#

okay, cool, can do

uncut viper
#

screenshots of code are very not recommended here

shut grove
#

question for clarification, can I use this to add friendship points to multiple npcs?

rancid temple
#

Yeah, generally speaking if you share a screenshot of code I'm not helping lmao

#

Or I'll help up until the code slips off screen and then I'm done because I'm not about to scroll up to find it KEK

shut grove
#

for example, if I did this would it add 1 heart to all 5?

                       "Type": "Friendship",
                       "Data": {
                           "TargetName": "Luna, Leon, Marie, Leah, Alex"
                       }
                   }```
teal bridge
#

Aren't the rewards part of an array?

rancid temple
#

Hm, man the special order page is kind of badly formatted lol

shut grove
#

it is

teal bridge
#

I doubt that you can target multiple NPCs in one reward (don't know, but it certainly makes no suggestion that you can). Just set up multiple rewards, one per NPC.

runic rose
#

Ah, hang on, the number for the format version is completely wrong. Let me fix that and see if anything happens

#

I did say I was a newb, didn't I ๐Ÿ˜…

uncut viper
#

everyone's a newb to start

shut grove
#

I wanted the quest to reward some friendship with each npc who would appear in the event after you finish the special order

uncut viper
#

and if you got that info from the uploader site then you're already doing better than a lot of people who upload their json and then never read a single thing in it and just ask people to point out the errors for them

rancid temple
#
"Rewards": [
  {
    "Type": "Friendship",
    "Data": {
      "Amount": 100,
      "TargetName": "Leah"
    }
  },
  {
    "Type": "Friendship",
    "Data": {
      "Amount": 100,
      "TargetName": "Alex"
    }
  }
]
#

Honestly, might be easier to just reward the friendship through the event lmao

shut grove
#

maybe, idk lol

runic rose
#

thank you, button, I was a bit nervous about posting in here...i've been using reddit as a resource but this seems like it needs some real time feedback

#

that's the link, still got nothing from the game after fixing the format version

uncut viper
#

remove the ".png" from your "Target" line

#

i think thats the only thing wrong with it assuming your file name is c orrect and your coordinates are correct

#

but Target lines always take "asset names" not file names

#

which are generally the name of the asset in your unpacked folder but without the file extension

#

so you just want "Target": "Maps/springobjects"

runic rose
#

gotcha

uncut viper
#

your FromFile should have your file extension though

#

which it does, sodont remove it

rancid temple
#

For something small like this it won't matter, but I do wonder what is less expensive. Editing the image of Maps/springobjects or Loading a new sprite and editing the object itself to use that texture instead

runic rose
#

aha!! It worked!! the coordinates are definitley off, but it worked!

uncut viper
#

probably the latter. baby steps though, and technically this does have some benefit (if another mod reuses the same sprite, it will work there too)

runic rose
#

i'm so happy

#

thank you so much!

uncut viper
#

just in case it helps with the coordinates remember you want the coordinate of the very top left of the thing you wanna replace

#

including any transparent space

rancid temple
#

X and Y start at 0

#

But most editing programs should be able to give you accurate coordinates

#

Being able to show a grid helps with finding the top left corner

runic rose
#

noted. my first goal was to get the mod working in game. next is to tweak the coordinates

#

Thank you guys! was this an okay thing to bring to this chat? or is there somewhere more appropriate for basic questions?

rancid temple
#

Nah, this is the place for making mods questions

#

There's an art channel for arting and writing, but coding questions should be in here

#

Runs the range of the simple CP stuff all the way up to the complicated C# mods lol

tender bloom
#

this is the perfect place to ask

#

and feel free to interrupt if people are off topic

uncut viper
#

(i will say tho dont be discouraged if you ask something else in this chat later and it seems like you were ignored, that reeally only happens if people are eithe distracted by a different topic and didnt notice, or dont know the answer and so might be around but cant help. people here are very willing to help usually!)

tender bloom
#

we're...not good at staying on topic

runic rose
#

cool! i'm trying to work my way up to some more complicated mods, so you will probably see me again soon

#

lol thats okay, thats how discord be

uncut viper
rancid temple
#

#making-mods-off-topic catkek

uncut viper
#

like atra i would change that from "feel free to interrupt" to "please interrupt, you'll be doing the whole channel a favour"

rancid temple
#

Added all the other buffs I left out before to my stardrops mod, now I have to figure out what effects some of them actually have lmao

tender bloom
uncut viper
#

i was referring to what atra said the other day

tender bloom
#

ah ok

uncut viper
#

in response to you

tender bloom
#

I thought we had gotten someone ๐Ÿ˜†

#

not today...

uncut viper
#

im observant!!

rancid temple
#

Get atra to change their PFP to yours SDVkrobusgiggle

#

Ooh, or swap them

uncut viper
#

the name colour is hard to miss

tender bloom
#

yeahhhh but I'm not giving it up!

#

red > orange

uncut viper
#

almost everything > orange

rancid temple
#

I may be a little colorblind, but they don't seem that far apart

#

These particular shades anyways

uncut viper
#

they are when you like red and dont like orange like me

rancid temple
#

Lol

teal bridge
uncut viper
#

theres a reason purple is the colour of the toppest tier of chat roles in here

tender bloom
#

purple > blue > red > green > certain shades of yellow > orange > other shades of yellow

#

though teal is pretty good, maybe better than red

teal bridge
#

Correction, purple is the color of the toppiest tier of non-producing chat roles in here.

tender bloom
#

ranking colors is hard

rancid temple
#

Pink is more of a red color huh?

uncut viper
#

hm. thinking about chat name colours makes me wonder how possible it'd be to bridge this chat channel with in game stardew chat

#

i wanna be able to lurk in here while i play

#

how possible it'd be without a custom discord bot* i should say

rancid temple
#

Just get a third monitor lizDerp

uncut viper
#

i have three!

#

not enough

rancid temple
#

I can't imagine having three and not making one dedicated to Discord lol

uncut viper
#

one is dedicated to discord
what makes you think its dedicated to this channel though

rancid temple
#

Ah, that's fair lol

uncut viper
#

i like y'all but i dont like y'all that much /lh

lucid iron
#

Well just go bribe aquova

uncut viper
#

(i do have it open often but if im playin with someone its gonna be dedicated to the discord of the people im playing with)

lucid iron
#

Make governor stalk us on your behalf

uncut viper
#

hey now. if it was added to governor bot it could be for ALL of our behalfs. behalves.

teal bridge
#

What you need is a discord aggregator that spews out every message from every channel you're in into one giant feed, so you can follow all 200 messages per minute.

iron ridge
lucid iron
#

Right yes socialism

uncut viper
#

yeah im not interested in getting my discord account banned for being a self bot SDVpuffersquee

lucid iron
#

Say wasn't there a twitch sdv bot

uncut viper
#

sounds familiar

iron ridge
#

Believe so

long jungle
#

Hello again. I'd just like to ask if you guys can suggest any easy-to-understand guides on how to add Mod Config. to my Mod? I only need a simple Turn On/Off Toggle for some features.

#

It's a Content Patcher mod.

long jungle
grand lantern
#

you have tons of fans cheering you on though โค๏ธ

clever sinew
#

I know this is from days ago and you already sprited something, but for the record because I just saw it Emily the Mixologist allows players to buy specific juices (e.g. tomato juice instead of regular juice). So if anyone else is interested, Iโ€™d look in that modโ€™s code.

#

(Wanted to throw this in here before i forget, apologies for interruption)

brave fable
#

my suggestion would be to start with ForEachItem -> ForEachItemContext SDVdemetriums no reason, but it's a start

brittle pasture
#

we answered it. Tldr shops (or any place that uses item queries): yes, dialogue/mail: no

clever sinew
#

Ah okay. Missed that ๐Ÿ˜ญ. My apologies again.

brave fable
#

and ooohhhh new vs update previews show me so many features i haven't been using. where has Change Signature been all my life. how is Ctrl+T better than Ctrl+,

#

and mmMMMmMMMm display return values inline

#

mmmmmm copy from error dialogues and copy files between windows. two things i totally wanted yesterday

rancid temple
#

I know it has like 2 things it still does that CP can't but I can't remember if that would be one of them lol

brittle pasture
#

Hmm I don't know, probably not since it predates item queries
EMC does add a custom AddItem that uses item queries

rancid temple
#

I was wondering about an AddItem using item queries lol, that's at least usable

#

I think you'd have to word the mail to indicate that you'll receive a flavored item though, since it won't show up there

brave fable
#

what in the hell is the debugger ienumerable viewer

#

where has this been

brittle pasture
#

yeah, maybe I can look into how %item works and add a mail-tailored version

valid folio
#

Hi, how are you? I have to decide certain values in my mod (prices, production time, health and energy restoration values, etc.), is there any table or parameters to guide on the subject?

lucid iron
#

nah just go by vibes

brittle pasture
#

yeah vanilla food is all over the place

lucid iron
#

the wiki does have artisan goods profit chart tho

#

for keg and preserve jar

brittle pasture
#

if you want to care about balance I guess you can compare against vanilla stuff

lucid iron
#

but hm that one doesn't really account for growing the stuff

rancid temple
#

I prefer the look at vanilla and add a tiny bit method lol

long jungle
#

I'd appreciate any help as I am new to this stuff. I don't understand what's wrong.

This doesn't seem to be valid JSON.
Technical details: Invalid property identifier character: {. Path 'ConfigSchema['Monster Health']', line 10, position 0.

https://smapi.io/log/7b79fd977a48497889b23b56c9c43a83

ocean sailBOT
#

Log Info: SMAPI 4.1.7 with SDV 1.6.14 build 24317 on Microsoft Windows 11 Home, with 43 C# mods and 28 content packs.

brittle pasture
#

the wiki lists "gold per day" for each crop, but that doesn't tell the full story (cauliflowers for example is about twice as good as parsnip, but its seed are 4 times as expensive, which matters early)

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.

rancid temple
#

Vaguely, you have likely forgotten a character such as a comma or a bracket or you're using an incorrect one near the position it indicates

long jungle
# rancid temple !json share your code

``{
"Format": "2.4.4",
"ConfigSchema": {
"Monster Health": {
"AllowValues": "true, false",
"Default": "true",
"Section": "Monster Changes"
},
{
"Monster Damage": {
"AllowValues": "true, false",
"Default": "true",
"Section": "Monster Changes"
},

{
"Monster XP": {
"AllowValues": "true, false",
"Default": "true",
"Section": "Monster Changes"
},
},

"Changes": [........ ``

hard fern
#

that's not

rancid temple
#

Use the validator site I linked

hard fern
#

yeah

long jungle
rancid temple
#

Yeah if you're not using a text editor with validation, you can use the validation site to check your syntax. Though I strongly suggest VSC

long jungle
#

I feel so dumb as I am probably making a common sense mistake, but please be patient in helping me ๐Ÿ˜…

rancid temple
#

You have extra { curly brackets in several locations

#

Line 10 and 17 I can see immediately

long jungle
#

ohhh

#

So Those are not needed

#

Oh I get it now...

#

I accidentally copied them along

rancid temple
#

Yeah, think of {} and [] as the bread to some code sandwiches

#

For every open you need a close and you need to follow the presented syntax closely to make sure the data is valid

long jungle
#

Thanks a lot

#

According to the json validator, it's now fixed

amber adder
#

@dusk terrace are you currently open for C# coding comssions right now/near future and can I dm ya

valid folio
dusk terrace
amber adder
shut bane
#

How do I get my mod in the showcase?

drowsy pewter
#

@blissful panther Nice mod!

indigo yoke
#

I'm trying to content patch my own machine (if a mod is installed) to add in more recipes to the output rules. is this the correct format?

hallow prism
#

i don't think so let me check

drowsy pewter
#

On the line after Entries, it needs to say
"EfficientCog_to_Iridium": { instead of just {

hallow prism
#
        {
            "LogName": "Editing Jeweler Workshop",
            "Action": "EditData",
            "Target": "Data/Machines",
            "TargetField": [
                "(BC)Lumisteria.MtVapius_JewelerWorkshop", "AdditionalConsumedItems",
            ],
            "Entries": {
                
                        "Lumisteria.MtVapius_GoldBar":{
                            "ID":"Lumisteria.MtVapius_GoldBar",
                            "ItemID": "(O)336",
                            "RequiredCount": 1,
                            "InvalidCountMessage": "{{i18n: MtVapiusJewelerWorkshop_MissingGoldBar_Translated}}"
                        }
            },
            "When":{
                "HasMod |contains=selph.ExtraMachineConfig": "false",
                        }
        },```
drowsy pewter
#

So you put the id twice

hallow prism
#

you directly put the machine then maybe a default, but default isn't a first field

drowsy pewter
#

also true

hallow prism
#
        {
            "LogName": "SeedChange",
            "Action": "EditData",
            "Target": "Data/Machines",
            "TargetField": [
                "(BC)25",
                "OutputRules",
                "Default",
                "OutputItem",
                "Default",
                "StackModifiers"
            ],
            "Entries": {
                "Lumisteria.MtVapius_ImprovedSeedMaking": {
                    "Id": "Lumisteria.MtVapius_ImprovedSeedMaking",
                    "Condition": "ITEM_CONTEXT_TAG Input mt_vapius", //PLAYER_HAS_MAIL Any Lumisteria.MtVapius_SeedMakerMail,
                    "Modification": "Add",
                    "Amount": 1.0,
                },
            },
        },```
A more "classic" edit
indigo yoke
#

so like this?

cinder goblet
#

Who is easiest to mod in SVE, Krobus or Mr. Qi?

indigo yoke
# indigo yoke

from my testing, this does indeed seem correct. yay time to... adjust and recode all of the vmv artifacts to use this instead of the old way that I did it >->

lucid iron
cinder goblet
lucid iron
#

not that i know of, but go ask in SVE server to be sure

#

nothing stops you from just

#

adding your own item with same sprite as the vanilla ones tho

rancid temple
#

Honestly wouldn't be surprised if they did, SVE kind of brushes against everything even when it isn't making big changes lol

green patrol
#

hey hey am back with yet another "how do you do this" question

So I am trying to do a "flavored" item for the kimchi mod and I'm not exactly sure what exactly I'm doing wrong to define it but it causes the game to crash when I scroll to it in the inventory.

This is the code snippet for defining the base object:

            "Action": "EditData",
            "Target": "Data/Objects",
            "Entries": {
                "KimchiMakerContinued_Kimchi": {
                    "Name": "KimchiMakerContinued_Kimchi",
                    "SpriteIndex": 2,
                    "DisplayName": "{{i18n:Kimchi_Name}}",
                    "Descripition": "{{i18n:Kimchi_Desc}}",
                    "Texture": "Shads42.KimchiMakerContinued/Objects",
                    "Price": 145,
                    "Edibility": 50,
                    "Type": "ArtisanGoods",
                    "Category": -26,
                    "ContextTags": [
                        "kimchi_object",
                        "color_red"
                    ], ```

And then this is the code for defining the corresponding machine output:
drowsy pewter
#

ArtisanGoods is not a Type

green patrol
#
                    "OutputRules": [
                        {
                            "Id": "KimchiMakerContinued_Kimchi",
                            "Triggers": [
                                {
                                    "Id": "VegetablePlacedInMachine",
                                    "RequiredTags": [
                                        "category_vegetable",
                                        "!no_kimchi"
                                    ],
                                    "Trigger": "ItemPlacedInMachine",
                                    "RequiredCount": 1
                                }
                            ],
                            "OutputItem": [
                                {
                                    "Id": "Kimchi_Default",
                                    "ItemId": "KimchiMakerContinued_Kimchi",
                                    "ObjectInternalName": "{0} KimchiMakerContinued_Kimchi",
                                    "ObjectDisplayName": "[LocalizedText Strings/Objects:KimchiMakerContinued_KimchiString %PRESERVED_DISPLAY_NAME]",
                                    "PreserveId": "DROP_IN",
                                    "CopyPrice": true,
                                    "CustomData": {
                                        "selph.ExtraMachineConfig.RequirementId.1": "(O)260",
                                        "selph.ExtraMachineConfig.RequiredCount": 2,
                                        "selph.ExtraMachineConfig.RequirementInvalidMsg": "{{i18n:Kimchi_Missing}}" 
                                    }
                                }   
                            ],
                            "MinutesUntilReady": 100
                        }```
drowsy pewter
#

it's not your issue but its not a type and oh wow can you please use the json website

green patrol
#

heck sorry

#

idk why it formatted like that when I sent it

uncut viper
#

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

rancid temple
#

Discord doesn't like formatting, another reason to use the validator site

uncut viper
#

use this, dont send it directly in here

green patrol
#

okies uh lemme get screenshot then

uncut viper
#

not a screenshot

#

use that website in the governor command

#

copy and paste your json into it, submit it, and then copy and paste the resulting url into here

drowsy pewter
#

And you said the game crashed so I want your log too

green patrol
#

yeye I have the log already

ocean sailBOT
#

Log Info: SMAPI 4.1.7 with SDV 1.6.14 build 24317 on Microsoft Windows 11 Home, with 18 C# mods and 20 content packs.

brave fable
#

screenshot is maybe the worst possible option short of taking a photo lol

green patrol
#

do you want the machine file and the object file or just the machine file?

rancid temple
#

Ugh, I'd forgotten about people who just take photos, unhinged

drowsy pewter
#

Did you set the LocalizedText String elsewhere?

#

Or did you just replace it with your own name and not actually define a string

teal bridge
green patrol
#

No I defined a string

drowsy pewter
#

Ok

spice inlet
#

Hm, I am contemplating about adding live events and buttons to UB. Like a button that sequentially lights up some torches in a dark room, or a set of switches that will open a gate in the right combination. A touchaction for non disruptive short dialogue. A pressure plate that patches a bridge onto the map alongside some screenshake, smoke and a woosh sound. SDVpufferthink

green patrol
uncut viper
#

(also when sending jsons thru the validator website you should always include all of the relevant ones)

green patrol
#

kk I'll get object and strings too

drowsy pewter
#

Is your item intended to be colored like other flavored artisan goods?

green patrol
#

no just flavored

#

From what it looks like the original 1.5.x mod preserved the name

#

but the sprite didn't change

#

I tried doing it like the ones in the vanilla objects file from the base game but it gave me the whole "Flavored objects can only be jelly/wine/pickles/juice/roe" message

#

so I tried poking around on stardew forums before asking here

drowsy pewter
#

correct

green patrol
#

It works if I don't try to preserve the name just fine

drowsy pewter
#

Ah ok

#

thats good to know

#

I have a headache so I'm a little slow with this

uncut viper
#

its curious that its the string.Format thats erroring

green patrol
#

omg feel better

#

yeah I have no idea why it is

uncut viper
#

ItemRegistry.GetDataOrErrorItem(base.QualifiedItemId).Description this is returning null somehow

#

what does your i18n look like?

green patrol
#

lemme grab it

uncut viper
#

oh wait

#

you have a typo

#

Descripition

green patrol
#

H E C K

hard fern
#

๐Ÿ˜ญ

drowsy pewter
#

lol

hard fern
#

descriptition

green patrol
#

rip this is the semicolon issue all over again

rancid temple
#

Can you use / in LocalizedText? Base game uses \\

calm nebula
green patrol
#

what sanity

Also I have no idea rokugin ๐Ÿ˜… this is my first time trying to do a "flavored" Item

rancid temple
#

Good to know SDVpufferheart

calm nebula
drowsy pewter
#

anyways do change your Type to be Basic

calm nebula
#

Use a spellchecker

green patrol
#

okies

#

tyvm qwq

calm nebula
#

Always use a spellchecker

next plaza
#

woh neds a spelchecker

rancid temple
green patrol
#

oh

#

yeah they're way smarter than I am

lofty ruin
uncut viper
#

Random separates choices by comma and you've got commas in your dialogue

drowsy pewter
#

You can instead do Random and put each dialogue choice in an i18n token

#

its a good idea to i18n, anyways

lofty ruin
#

Is i18n random? Or is it a daily thing

drowsy pewter
#

i18n is the system for making translations simple, it just "holds" strings for you behind different keys.

Dialogue file:
"Random: i18n String 1, i18n String 2, i18n String 3"

i18n file:
String 1: "blah blah blah blah"
String 2: "blah blah blah"
String 3: "blah blah"

#

Aside from being used to make translators lives easier, it also comes in handy for organization like this

#

That's the basic idea but not the exact syntax

brave fable
#

what's a clean way of netsyncing a dict<string, (string, vector2)> per day SDVpufferthinkblob i was going to have them as netfields on a location but now i want arbitrary number of locations

hard fern
#

whats the thing that makes items count for shipping bin vs not?

brave fable
#

"ExcludeFromShippingCollection": true, in your data/objects entry

hard fern
#

^^ tyy

lucid iron
blissful panther
drowsy pewter
#

I was looking at it like wow I cant believe it's a linear stacking buff ๐Ÿ˜‚

uncut viper
#

right? it should be exponential /j

blissful panther
#

With very, very small amounts per crop, at least!

valid folio
#

The prices of the products, both when buying and selling them are always double what one stipulates in the mod's json, right?

For example if I put a purchase price of a recipe at 500 it will cost 1000 in the game?

uncut viper
#

it depends on the shop

blissful panther
#

I'll probably add a balance toggle that reduces the impact the more you have once I have SpaceCore skills in.

uncut viper
#

but generally yes

valid folio
brave fable
#

smapi message makes me sad but it's an option

uncut viper
#

pierre has an additional 2x markup

#

you can make an entry ignore that additional one though if you want

lucid iron
#

Well I suppose you can also just put the Vector2 into the modData of each location

valid folio
lucid iron
#

I am assuming the str key is the location name

uncut viper
#

if you set 500 it will be 2000 in pierre afaik

valid folio
uncut viper
valid folio
brave fable
#

dict<string, (string, vector2)> for dict<location id, (critter id, critter tile)>

#

i could probably just lump the value tuple into two moddata entries tho

lucid iron
#

Blub critter framework DokkanStare

brave fable
#

lmfao no

#

bad enough having a mod with dependencies, i'm not making a dependency

lucid iron
#

Worth a shot PecoSmile

#

I like making dependencies tho, theoretically ppl better than me at art can use it

indigo yoke
#

btw @hallow prism , I am just wondering.... have you added anymore artifacts since like.... june?

atomic vale
#

where is the texture for iron ore in the mines?

lucid iron
#

springobjects

rancid temple
#

Maps/springobjects

atomic vale
rancid temple
#

You should include the maps part, some peole still don't know that it's in maps lol

lucid iron
#

no

atomic vale
rancid temple
#

Nope, it's the only seasonal objects

#

It's from eons ago, it's not that odd

atomic vale
#

and funny

lucid iron
#

and yep roku's right, Maps/springobjects

atomic vale
#

thx

rancid temple
#

Further objects are in TileSheets/Objects_2

patent lanceBOT
#

@next plaza: fix the GMCM menu open API stuff for focustense (and other people who might be using it) (23h ago)

teal bridge
#

Blueberry is red now. That's going to cause some Strooping.

uncut viper
#

red is the real prize

brave fable
#

!!

indigo yoke
#

grats!

brave fable
#

HOW COME BUTTON'S RED HUH

tender bloom
#

red!!

uncut viper
#

bc we won third and second place!

brittle pasture
#

Rip both of ur prpl

brave fable
#

OH RIGHT I forgot graveyards was literally your mod and i thought you were 1st place winner lol

blissful panther
#

So much red here right now!

brave fable
#

finally... server owner role

tender bloom
#

blood blood blood blodd

uncut viper
#

waiting with baited breath to see who the last red is gonna be

lucid iron
#

now u can all become mathpersons

teal bridge
uncut viper
#

it still does! but it wasnt available!

teal bridge
#

So your prize is actually a downgrade.

lucid iron
#

so wait do u just permanently have red now

teal bridge
#

Betting it is, I mean Elizabeth still has red.

next plaza
#

My exclusive color!

#

I guess mine is subtly different

#

Contest Winner colors don't normally last permanently

lucid iron
#

u have nice magenta tint

uncut viper
#

doctor classical elizabeth mathperson has a different role

next plaza
#

Elizabeth has a different type of role

brave fable
#

jammers ๐Ÿค contestants ๐Ÿค developers

indigo yoke
uncut viper
#

i will enjoy the red for as long as it lasts

lucid iron
#

candied apple mmm

brave fable
#

god i wanna play with graveyards and spooky furniture but playing is so hard

hard fern
#

:(

#

now i want candy apples.

drowsy pewter
#

finally the modding chat gets a crumb of color variation

calm nebula
rancid temple
#

Fun fact: if you grab a GMCM scrollbar and drag it past the top/bottom, it spams the movement noise SDVpuffersquee

lucid iron
#

i think we r still too much warm colors