#making-mods-general

1 messages · Page 4 of 1

brittle pasture
#

SDVpufferthink maybe we can do something like add a phantom "GuineaHouse" house to the guinea pig, and modifying the Coop and Barn (and all its upgrades) as accepting occupants from the nonexistent GuineaHouse

hallow prism
#

is the field accepting other buildings or animals?

#

never looked at it

brittle pasture
#

It's buildings
(also woops ping, sorry)

uncut viper
#

CanLiveIn seems to check if the building has a valid occupant type (so a building ID) that matches the building the animal already lives in, though

brittle pasture
#

The Big Coop for example is set to accept all occupants that live in Coop

uncut viper
#

but the animal cant already live in a building if it cant be assigned to live in that building

#

i think this function is for moving animals from e.g. one barn to another

hallow prism
#

(it's ok it happens, i don't like repeated pings, but reply is annoying anyway)

uncut viper
#

changing this function might make it so that you can buy a g uinea pig in a coop, and then move it from the coop to t he barn, but i dont think changing it will let you buy it directly into the barn to start

#

in f act ValidOccupantTypes doesnt even seem to be read by marnie's shop? so idk if the phantom guineahouse would work either

hallow prism
#

hmm, but you can put animal that lives in barn in deluxe barn, so SOMETHING may use it

glass turret
#

Just gonna leave this here and get something to eat

uncut viper
#

im looking at every function that uses ValidOccupantTypes

brittle pasture
#

buildingTypeILiveIn seems to only be a string though, and whether that's a valid building doesn't seem to be actually checked anywhere

glass turret
#

Hopefully you can figure out the ginue pig problem

uncut viper
#

which mkes me think the "barn animals can live in delux barns" stuff might be controlled or possibly just hardcoded elsewhere

brittle pasture
#

It is using ValidOccupantTypes

uncut viper
#

for buying directly from marnie into the deluxe barn, i mean

brittle pasture
#

it is checking CanLiveIn in the AnimalPurchaseMenu

lucid iron
uncut viper
#

well now im left to wonder why my decomp solution is apparently not searching in both the GameData DLL and non-GameData dll SDVpufferthink

lucid iron
#

if you have further Q pls post your content json

#

!json

ocean sailBOT
#

JSON is a standard format for machine-readable text files, often 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.

pine ermine
brittle pasture
velvet narwhal
#

(schrodinger's guinea pig, it can exist in both the barn and the coop)

lucid iron
#

it would be cute if guinea pigs just had their own building though ukimasu2

#

a tiny 3x2 guinea pig house

velvet narwhal
#

it's gotta at least be the size of the dog/cat house for their happiness! SDVpufferwaaah

lucid iron
#

doghouse is 3x1 guinea pigs stay wining

velvet narwhal
#

now i just wanna watch a horde of guinea pigs on youtube

uncut viper
#

"Condition"s are vanilla behaviour, they use Game State Queries
"When"s are Content Patcher fields, they use content patcher tokens
you can use tokens in conditions but you cannot use game state queries in whens

#

(unless you use Esca's mod that lets you use game state queries in whens)

lucid iron
#

(yea i completely forgot that wasn't a default content patcher feature)

glass turret
uncut viper
#

(speaking of non-default features and conditions and whatnot, is anyone willin to give my BETAS documentation a quick scan before i publish it later to a) lemme know if anything is horribly misformatted (i tried using fancy github markdown stuff) and b) if anything just makes no sense or is unclear at all still)

lucid iron
#

wow yes code review i love those

uncut viper
#

not just directly inside "Changes"

#

so you need an EditData patch Targeting Data/TriggerActions and then your trigger action stuff will be placed inside your Entries

velvet narwhal
#

chu can do a i offer b (please distract me from my question fork hell that i've created for myself)

glass turret
#

oh

Er, there's a small slew of em. I think 20? one for each tool+upgrade combo

uncut viper
#

you can add multiple in one list of Entries, so in one patch

#

you will need to reformat them a bit though to be in key:value format

glass turret
#

Ah

lucid iron
#

can have as many as you want, as long as they all got unique keys

uncut viper
lucid iron
#

i disagree with this font choice

#

also bit hard to read in darkmode

velvet narwhal
uncut viper
#

your font is different than the one it shows for me SDVpufferthink interesting
i can tweak the colours though but i cant tweak the font. if its just Sucks in general though i can remove the colours (and thus font) completely i just tried adding them bc it was hard on my eyes before dfkgjh

lucid iron
#

hm can i add comments somehow

#

prob not cus not a pull req think

#

u should thread this so that aviroen and i dont spam main chat

uncut viper
#

i am not a mod author

velvet narwhal
#

you're a cheeto you do it SDVpufferclueless

lucid iron
#

kk

#

(also here you go @chu2.

uncut viper
#

ive never made a mod in my life cant you see im blue

hallow prism
#

dadadi dadada dadadi dadada

next plaza
#

I really need to do better docs

#

I think I want to use a new website though

#

(My old one is bleh)

blissful panther
#

I'm actually working on a docs overhaul for MEEP for the next little update with a new thing.

next plaza
#

I still need to figure out how I want my new website to look

blissful panther
#

...if you find a good place to host them, let me know.

next plaza
#

I mean, I have web hosting already

blissful panther
#

Or good... docs software I guess.

#

The hosting is sort of a non thing, yeah.

next plaza
#

I was gonna use this for my website: https://getkirby.com/ (totally not because it's named the same as the cat I used to have)

#

With the markdown plugin

blissful panther
#

...that's a pretty solid reason, though.

next plaza
#

I also like that it doesn't need a database

lucid iron
#

as long as its a static page u r fine

sharp field
#

If you create a fake Farmer object for game1._player, are there any concerns with letting it persist to use it next time you need it as opposed to unloading each time?

lucid iron
#

the mannequin caches a fake farmer instance

#

you just have to think about what info on farmer might change bolbthinking

sharp field
#

I guess I was thinking about if there was any functionality the cycles through the list of farmers and makes updates and if this could cause unintended issues if there is a fake farmer in there. Do stats get updated this way? That would actually be helpful if the fake farmer's stats were updated (days played)

lucid iron
#

Game1.getAllFarmhands() uses netWorldState.Value.farmhandData so as long as you don't put the fake farmer in there it should be fine

#

stats uses some netfield thing i think?

next plaza
#

I didn't think stats were netfields - if they were there wouldn't be the problem of the mnot syncing if you left the day early

#

(They probably should be though)

lucid iron
#

yea urite Stats doesn't implement INetObject think

calm nebula
#

Stats aren't netfields no

#

There are a full class of bugs this causes (re issues with the ticket machine, issues with farmhands and books, etc.)

sharp field
#

Wait. If stats are synced at night, wouldn't all crops/bushes/trees using daysplayed to determine the age of said object appear as not ready to harvest for the farmhand if they haven't joined since those objects became fully grown?

calm nebula
#

They are sent over with the farmhand data

#

Stats only get sent over when the whole farmer instance gets xml serialized and yeeted over

#

Confused the fjck out of me too

royal stump
#

yeah, they mostly kind of sync during loads, though I imagine the DaysPlayed rng usage usually gets its information through the host too
(i.e. that the farmhands don't need to run that code)

calm nebula
#

Hi esca!

#

Man

#

Coffee is a good idea

#

Hopefully boss man hasn't turned the coffee machine off yet

sharp field
calm nebula
#

He hasnt!

#

I mean of course

#

When you instantiate a farmer

#

You get what the constructor sets or default

#

You don't get the xml BS host sends over

sharp field
#

Regardless, the conclusion seems to be that a persisting fake farmer shouldn't cause any issues. Thanks!

calm nebula
#

So you get all default stats

simple musk
#

Hi folks. I’m not a modder (huge fan of all SDV modders. You’re all amazing). I have a general question about mods on GitHub. I’ve been waiting for an update for Upgrade Empty Cabins. A user named XTFOX on GitHub updated the mod to include 1.6 renovations and other fixes, but the files are in different formats and I don’t know if this means the mod update is not released yet, or if all GitHub mods are in different formats and there’s a way to change them to dll.

lucid iron
#

you need to build it

simple musk
#

I don’t know what that means

naive wyvern
#

Hello gang, I want to start creating assets for the minigames I have planned out; how should I go about it? Should I try and think about it in terms of stuff being 16x16 per tile?

I tried digging through the Maps folder and only saw the Target game having a map so I dont have very many points of reference, so I was wondering what the best way to do the assets is 👉 👈

calm nebula
#

Minigames are basically 100% manual

#

Like

#

Every source rectangle is hand selected

naive wyvern
#

oh god

velvet narwhal
#

oh no time to ping roku

calm nebula
#

So draw however you like

naive wyvern
#

okay good to know uigdsuigds
but at least a friend of mine is doing the code stuff for some of them qwq

#

glad to know there's no "real" constraint

naive wyvern
calm nebula
#

Recommendation

#

Do the code first

#

With rectangles and shit

#

Don't spend time making it look good

naive wyvern
#

oh! okay bet
I did have some diagrams, I'll let him know he can do rectangles and circles in the meantime so we dont have to spend time fixing proportions

#

thank you atra SDVpufferheart

rancid temple
#

I started working with this yesterday, ran into some issues this morning when I came back to it.
GetVirtualCurrencyList works as I would expect, able to match my expected currency against the list when I add a currency through CP.
IsVirtualCurrencyTeamWide also returns what I expect.
AddToVirtualCurrency and GetVirtualCurrencyAmount I was not able to get working.
I tried grabbing a bunch of the items I made into virtual currency and they collect and show up in the skills menu, but when I check the amount with the method it just returns 0. Same when I try to use AddToVirtualCurrency to add to the currency.
Not sure if I'm doing something wrong, since half the methods are working the way I thought they would

next plaza
rancid temple
#
{
  "Action": "EditData",
  "Target": "spacechase0.SpaceCore/VirtualCurrencyData",
  "Entries": {
    "rokugin.test_Token": { // using ModId here but it shows up in the asset correctly when exported
      "TeamWide": true
    }
  }
}
if (SpaceCoreApi!.GetVirtualCurrencyAmount(Game1.player, currency!) >= playCost) { //currency = rokugin.test_Token
    SpaceCoreApi.AddToVirtualCurrency(Game1.player, currency!, -playCost);
#

I can also link more specifically on my git if that would be better

#

I keep having to fix text to test, I promise I haven't left text anywhere though SDVpufferflat

#

I have also tried TeamWide as false, not that I expected that to make any difference

next plaza
#

And just to be sure, the value of currency is rokugin.test_Token?

rancid temple
#

Should be, as long as my logs are correct

next plaza
#

facepalms

#

Let's play spot the bug!

        public int GetVirtualCurrencyAmount(Farmer who, string currency)
        {
            if (VanillaAssetExpansion.VanillaAssetExpansion.virtualCurrencies.TryGetValue(currency, out var data))
                return 0;

            return data.TeamWide ? who.team.GetVirtualCurrencyAmount(currency) : who.GetVirtualCurrencyAmount(currency);
        }
uncut viper
#

inverted tryget?

next plaza
#

Yep

uncut viper
#

i have done this more than id like to admit

rancid temple
#

I did this several times yesterday lmfao

next plaza
calm nebula
#

Doesn't this not happen if you enable nullable 😆

next plaza
#

Oh hush you

rancid temple
#

Well, that would mean I would have to actually listen when it tells me I might have a null lol

calm nebula
#

(It would have warned that data could be null)

next plaza
#

Warnings? SDVPufferSip

calm nebula
#

You can set it so the project refuses to compile too

#

Which is what I had

rancid temple
#

Might be a good idea, considering how much I keep running into this problem lmao

next plaza
calm nebula
#

Don't look at my repo

#

There are currently 1000+ unresolved warnings

#

MOST of that is stylecop

#

Tbh I would say something about switching off of stylecop (it's falling further and further behind) but I'm leaving all that code to rot anyways

#

And I'll find a new linter if I ever start another c# project

rancid temple
deep cypress
#

I am still trying (and failing) to fix the PolyamorySweet Rooms multiplayer bug, wherein the rooms show up at a farmhand's house, instead of the main farmhouse. It appears that it is simply putting all the rooms at the last farmhouse which it thinks about. I believe this to be the code where the mixup is happening.

 var allSpouses = GetSpouses(__instance.owner, -1).Keys.ToList();
 if (allSpouses.Count == 0)
     return true;

 GetFarmHouseSpouseRooms(__instance, allSpouses, out List<string> orderedSpouses, out List<string> customSpouses);
lucid iron
#

Hm trigger actions only ever apply locally right think

#

So it's fine to just use Game1.player in the delegate

uncut viper
#

for a custom trigger/trigger action?

lucid iron
#

Yeah in a custom delegate

uncut viper
#

triggers do only apply locally but you can also use uhh whats it called. it might be in Utility but theres a "WithPlayer" function that you pass the target player to

lucid iron
#

but that is for the GSQ as far as i can tell Bolb

next plaza
#

If that's what you mean

#

There's a "HostOnly" flag on trigger actions to determine if it runs for everyone or just the host

lucid iron
#

oh true that is a thing

#

ig i am just vaguely concerned bc Raise takes a player arg but the delegate doesn't seem to have any way of accessing it

public delegate bool TriggerActionDelegate(string[] args, TriggerActionContext context, out string error);
next plaza
#

Hmm, I guess it's only used for tracking on Farmer.triggerActionsRun

#

And the conditions for GSQ

calm nebula
#

Hmm

#

I could have sworn you could tell host shit

#

Loke

#

Myuu wrote an entire thing foe that

#

Now

#

The endless question

#

Where in the office is my dammed coffee

sullen rain
#

Can someone point me in the right direction of where on the townInteriors png I can find the flooring used in the Saloon's gameroom? I feel like I'm playing a hopeless game of Where's Waldo

rancid temple
#

If you open the map in Tiled you can right click the tile with the stamp tool and it'll take you to it on the sheet

sullen rain
#

Gah

#

so simple

#

ty

rancid temple
#

If it still eludes you, I can take a look, sometimes I still can't find it even with that lol

#

Lol, why are special currencies harder to deal with than making this crane game

calm nebula
#

(Because inter-mod compat is finicky lol.)

#

The vast, vast majority of the stupid emit code I used to write had to do with inter-mod compat

rancid temple
#

This will be the first mod I use API from another mod, so that's fun, new learning experience there

#

But my current issue is the special currency display system is kind of just bad

calm nebula
#

Yeah

simple musk
# iron ridge compile

I spent awhile trying to figure it out only to realize that the instructions are set for a version of visual studio for Mac that is no longer available. Do you have any other recommendations? I’ve tried to search for this but I can’t find anything

rancid temple
#

Could be maybe it hates virtual currencies, I would have to set up some more debug stuff to test if it's all currencies it has issues with

lucid iron
#

if you got a student email you can sign up for jetbrains stuff (to use jetbrains rider)

rancid temple
#

When I spend the last of my currency, it switches the counter to walnuts and refuses to go away until my crane game closes

lucid iron
#

otherwise vscode + C# dev kit extension

calm nebula
#

Yeah

rancid temple
#

But if I have currency, it goes away immediately like I told it to

#

I don't know if I've ever spent all of my qi gems before, that's the only other vanilla currency I can think of that uses the counter

simple musk
fiery cobalt
ocean sailBOT
#

Log Info: SMAPI 4.0.8 with SDV 1.6.8 build 24119 on Microsoft Windows 10 Home, with 21 C# mods and 30 content packs.
Suggested fixes: One or more mods are out of date, consider updating them

fiery cobalt
rancid temple
#

!json validator is generally better

ocean sailBOT
#

JSON is a standard format for machine-readable text files, often 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.

rancid temple
#

First thing the log says is that your content.json isn't found

fiery cobalt
#

No errors

#

That's unrelated

#

That's been there pre making this

rancid temple
#

Ah, well there's a lot of error here, is any of the log pertinent?

calm nebula
#

(Do you load the spritesheet anywheres)

uncut viper
#

the log doesnt say content.json isnt found, it says the content file for the fruit tree wasnt found

fiery cobalt
#

Fruit tree 'Josephs_PussyWillowSapling' failed to load spritesheet 'Josephs.SeedCrops/FruitTrees'.
Microsoft.Xna.Framework.Content.ContentLoadException: The content file was not found.
---> FileNotFoundException: Content\Josephs.SeedCrops/FruitTrees.xnb
---> DirectoryNotFoundException: Could not find a part of the path 'C:\Program Files (x86)\Steam\steamapps\common\Stardew Valley\Content\Josephs.SeedCrops\FruitTrees.xnb'.

calm nebula
#

Hi button

uncut viper
#

hi atra!

fiery cobalt
rancid temple
#

But are you doing a Load in one of your files?

fiery cobalt
#

// add item + crop images
{
"Action": "Load",
"Target": "Josephs.SeedCrops/Crops, Josephs.SeedCrops/Objects, Josephs.SeedCrops.MoreCrops/FruitTrees",
"FromFile": "assets/{{TargetWithoutPath}}.png" // assets/Crops.png, assets/Objects.png",
},
// add subfiles
{
"Action": "Include",
"FromFile": "data/crops.json, data/objects.json, data/fruittrees.json"
}
]
}

#

Like this?

brittle pasture
#

the texture name is Josephs.SeedCrops/FruitTrees but you're loading Josephs.SeedCrops.MoreCrops/FruitTrees

fiery cobalt
#

Omg

#

I am an idiot

#

Lets see

drowsy pewter
#

lol

fiery cobalt
#

It's always the smallest dumbest things I swear

#

That was it

calm nebula
#

Happens

finite ginkgo
#

It's always the stupidest stuff too

Just today I was trying to figure why my code wasn't working correctly, I spent way too much time trying to debug only to realize for whatever reason I'd been working on the assumption the season Index started at 1 for spring instead of 0; that was a quick fix

ivory plume
#

(Here we go. SDVpufferpingowo)

next plaza
velvet narwhal
#

(i was screaming at myself about why my dynamic tokens weren't working on my included file, i included it somewhere else without a condition) SDVpufferpain

ivory plume
#

<@&475534019782508564> The Stardew Valley 1.6.9 public beta is now available! (The beta is Steam-only.)

See the mod author migration guide for 1.6.9. SMAPI and Content Patcher already have beta versions available on Nexus, including initial compatibility rewriters for existing mods.

Please do not share that link online (e.g. Reddit or Twitter). Ideally we'd like a low-key beta without media attention, since we just want to find bugs before release and help modders get mod updates ready. However, feel free to post it on Discord or in DMs to anyone who might be interested.

finite ginkgo
fiery cobalt
#

I think the dumbest was when I couldn't figure out why the crop wasn't planting and I simpling forgot to till a spot

quartz dagger
next plaza
#

(So yeah that SpaceCore build I gave you earlier rokugin is broken with this)

outer kernel
#

when tf did we get to 1.6.9

lucid mulch
#

by having 1.6.8 for ages

lucid iron
#

time to see if my transpilers explod

wanton pebble
#

readies the Infinity Blades to stab anyone who makes it high key

lusty elm
#

remembers he never finished updating all his maps to 1.6... rooThink i should get back to that

fiery cobalt
#

Clint now refills your watering can when upgrading it. - Well that's nice

gilded comet
smoky terrace
#

I have a question and I was hoping someone can point me in the right direction.
I've been learning how to make a custom location using Tiled and Content Patcher, and so far I'm feeling pretty good about what I've learned. I had this idea to make a little hill with a picnic area where the sky shows up behind the hill, like it does with the map of Ginger Island North.

However, I cannot figure out how to make it so the sky shows up behind the map. I'm honestly not even sure what it's called (panoramic image?) so my attempts to google tutorials have not been fruitful.
I was hoping someone could tell me if this was a Content Patcher possible thing? and if so what the correct term is.

velvet narwhal
#

oh i'm so happy the contextualized mermaid pendant SDVpufferwaaah i no longer have to dig into the stringsfromcsfiles

next plaza
teal bridge
#

Is it Steam only? (no GOG version)

next plaza
#

Yeah it's a steam branch

#

Does GOG have branches?

teal bridge
#

I read the change list and don't think any of my own mods are affected, so no biggie. Just checking.

#

GOG doesn't have branches per se, but it has multiple versions and such.

round timber
#

90% sure its steam only, sorry

teal bridge
#

Actually, GOG Galaxy does have beta channels according to the UI. Never used 'em, but I just checked and it's clearly there.

rain oracle
#

As one who only does mod stuff when i’m in the mood, I do appreciate the ping. SDVpufferheart

wheat finch
#

I really need to dive back into modding and get my mods updated for 1.6/finish the shop mod (after nearing 2 years of off and on work on it).

deep cypress
next plaza
#

Inspiration was FFXIV for me, I'd never heard of Xena until after I made the chakrams 😅

deep cypress
#

Well, now you have some watching to do!!! 🙂

next plaza
#

Nah, rather be modding

#

There are 24 (+some more if S&S is installed)

calm nebula
next plaza
#

And it's easy for other mods to make their weapons convertible too with CustomFields

#

(Since you turn weapons into chakrams with the machine behind the player)

lucid iron
#

so would a mod update for 1.6.9 increment minor version or patch version think

next plaza
#

Minor I think

rancid temple
#

Xena reruns were barely a thing when I was a kid lol

next plaza
#

Unless you're adding "content" (content for most mods, new functionality for frameworks)

#

Keep in mind a lot of modded users aren't on 1.6.9

#

And probably won't be until the full release

deep cypress
#

Looks like loads of new and very cool dialogue keys for Sweet Love! Also, gonna be some re-writes....

next plaza
#

(That's why SpaceCore still has normal 1.6 build on Nexus)

rancid temple
#

Time for a beta file

brittle pasture
#

on the bright side the rest of my mods works (and only one needs a rebuild)

deep cypress
next plaza
#

That sounds like a big generalization 😛

deep cypress
#

It is, not all do, certainly.

calm nebula
#

I've never heard of Xena before

rancid temple
#

We all love generalizations

deep cypress
#

Hence tend! 🙂

#

Meet Xena.

calm nebula
#

When was this

rancid temple
#

100 years ago? Roughly /j

deep cypress
#

Xena is from the 90's. Shot in NZ.

lucid iron
#

curseforge bolbphase

[SMAPI] You can update 1 mod:
[SMAPI]    SpaceCore 1.25.3-beta-1-25-3-beta: https://www.curseforge.com/stardewvalley/mods/spacecore (you have 1.25.3-beta)
next plaza
#

sigh

deep cypress
#

That's why it's called curse.

calm nebula
#

I love that version number

next plaza
#

@ivory plume Sorry to bug you but can we maybe leave Nexus as SpaceCore's only update key seeing as it's confused by the beta for Curseforge's copy?

ivory plume
#

Any chance you could rename the file from SpaceCore 1.25.3-beta-1-25-3-beta.zip to SpaceCore 1.25.3-beta.zip to fix that?

next plaza
#

I don't know why it did that to begin with

#

It was auto synced

#

Fixed

ivory plume
#

I think it's a CurseForge bug:

#

I guess we'll need (another) special parse rule for CurseForge versions in the update-check logic. SDVpufferpensive

lucid iron
#

btw should i be concerned about these

AL lib: (EE) AddFileEntry: Invalid header in /usr/share//openal/hrtf/Default HRTF.mhr: "MinPHR03"
AL lib: (EE) AddFileEntry: Failed to load /usr/share//openal/hrtf/Default HRTF.mhr
little crag
last plume
#

Both CP mods

lucid iron
#

kk

desert vapor
#

unless it causes issues

brittle ledge
desert vapor
#

with audio specifically

ivory plume
lucid iron
#

didnt encounter any audio problems

desert vapor
#

Shouldn't affect anything because we don't even use HRTF

tiny zealot
#

The wedding event now replays if you exit & reload the day.
foreseeing a lot of happy players with this one

last plume
#

Ok. I’ll take a look thanks.

I just am trying to scramble to get IS-SVE done before I start classes and get it ready to release once flash releases 1.15. Was in talks with him and he recommended I release IS-SVE once 1.15 comes out

brittle ledge
#

Is this now on every migration page SBVLmaoDog

finite ginkgo
#

Can't wait for the day the answer is just "Yes" /j

uncut viper
#

"Fixed Trinket.getOne() not copying trinker fields."
patch notes needs patch notes smh

last plume
brittle ledge
deep cypress
#

Very

brittle ledge
#

oh, no, it actually wasn't

little crag
last plume
#

yea. sorry if i sound stressed. i just start classes in 2 weeks so i am unsure if it will be a curve ball coming from left field

tiny zealot
#

@uncut viper "Fixed pagination in powers tab when mods add more powers."

next plaza
finite ginkgo
uncut viper
#

(even though i didnt personally need it bc Special Power Utilities fixed it anyway—)

#

"Tweaked powers tab code so mods can get the power ID for a slot." SDVpufferthink this one is interesting though

next plaza
deep cypress
#

I thought it said yes too,

#

for a little while I recall it did.

last plume
#

yay! now i can finally add date ranges for certain unlockables!!!

lucid iron
last plume
#

having a more random unlock can add a config way of making the mod more interesting

#

to veteran users

#

but where can i download the beta so i can test to make sure my mod doesnt break?

next plaza
#

The 1.6.9 beta?

#

Did you read the link Pathos pinged people with?

#

(It's also in the pins now I believe)

last plume
#

i will check again

#

there a smapi update needed?

next plaza
#

Yes, like Pathos said in his message the beta ones are already on Nexus

last plume
#

oh didn't see. i will go check

#

thanks

uncut viper
#

none of my mods exploded \o/

velvet narwhal
#

(what about BETAS?)

uncut viper
#

(though one of my books will probably need a rewrite since i bool prefix false'd a method that has probably changed...)

next plaza
#

SHAME

uncut viper
#

in my defense
fuck delegates

#

its like 15 whole lines of code its fine—

next plaza
#

You can patch those

smoky terrace
uncut viper
#

i can b ut its so much easier to be lazy

next plaza
#

You just gotta find the internal method name/type with ILSpy

uncut viper
#

(also i didnt know how at the time but i do now)

last plume
#

fyi for mac users when opening the smapi mac icon, make sure you hit control and right click, then click open in the menu, otherwise macOS will flag it and block you

lucid iron
#

game should have night sky assets somewhere bolbthinking

#

perhaps not in nice tilesheet

last plume
#

do windows users get a suspicious file warning with smapi or just mac?

tiny zealot
#

!issmapisafe sometimes

ocean sailBOT
valid moth
#

any very rough guesses for how long the beta will last before the full release? (i.e. how much time I have to procrastinate SDVpufferchickpaint)

royal stump
#

SDVpufferlurkokay, no 1.6.9 errors in my stuff, I'm safe
(aside from an unreleased EMP update that needed a recompile for ArgUtility.TryGetEnum)

last plume
#

ok. also i just want everyone to know if they use internal macOS security, you can press command and right click. click open and you're golden.

hope this helps

smoky terrace
#

I believe the sky assets are in the loose sprites folder? XD I had thought about Night and Day tiles, That might be what I end up doing. I just thought maybe there was a better way ^_^ Thank you!

uncut viper
# next plaza SHAME

(okay it turns out you can shame me again bc its not even a delegate i was avoiding i think i was just being ultra lazy in avoiding messing with a for loop?? however i think the real source of shame is now "im looking at my code and i dont even remember what this code is supposed to do" oops)

ivory plume
royal stump
#

I didn't hang onto the log, though I could switch back and double check; that was the only complaint it had with the current beta SDV/SMAPI combo

teal bridge
uncut viper
#

it wasnt even that the code is crap its that i straight up was having a mind blank moment on what was even changed from the original, like what it was trying to accomplish
turns out thats bc i only changed one line
i... have no idea why i used a bool prefix for this.

#

ah well im sure ill remember to fix that proper once 1.6.9 actually releases,

teal bridge
#

Famous last words.

uncut viper
#

if i forget someone will eventually complain that their pet gifts arent respecting their item spawn conditions im sure

lucid iron
#

hm how do i go about having both beta and 1.6.8

#

do i just copy beta and add non steam game think

uncut viper
#

oh, easy. spin up a virtual machine ofc

lucid iron
#

nou

#

i guess proton is technically a route though

royal stump
# ivory plume In theory the SMAPI rewriters should cover the `ArgUtility` changes. <:SDVpuffer...

Looks like it successfully rewrote TryGetRemainder, but said "no such method" for TryGetEnum (as used below, if relevant)

if (!ArgUtility.TryGetEnum<LogLevel>(args, 1, out LogLevel logLevel, out error)) //a LogLevel name, e.g. LogLevel.Trace
    return false;```
<https://smapi.io/log/06e0dbb06e9840ddb954e98bd36fb453?Levels=trace%7Edebug%7Einfo%7Ewarn%7Eerror%7Ealert%7Ecritical&Mods=game%7ESMAPI>
ocean sailBOT
#

Log Info: SMAPI 4.1.0-beta.1 with SDV 1.6.9 'beta' build 24232 on Microsoft Windows 11 Pro, with 16 C# mods and 3 content packs.
Suggested fixes: One or more mods are out of date, consider updating them

teal bridge
#

It's pretty easy to just switch the Steam channel, isn't it?

#

Do you need to run both at literally the same moment?

ivory plume
lucid iron
#

well i'd have to downgrade smapi right think

#

to use 1.6.8

brittle pasture
#

SDV doesn't have DRM so you can just copy the folder into a new one

tiny zealot
ivory plume
#

(Note that once you save in 1.6.9, you won't be able to load that save in 1.6.8 anymore.)

lucid iron
#

sounds good i'll try copying

cyan marsh
#

ugh

#

so now I got to restore everything and prep a new version T^T

lucid iron
#

only 1 mod explode for me yay

uncut viper
#

(question bc im clueless now that i have recompiled my mod with the beta active so using the updated game dlls is it gonna be an issue if i try to use that mod in 1.6.8 again, assuming i did not use any of the new or changed functions? like the mod itself has not changed at all between 1.6.8 and the 1.6.9 beta but i dont know whether or not it'd be a problem if it was referencing the new dlls at the time of compile,)

brittle pasture
#

whew fixed my transpiler - only 2 broke, which needed me to update the ldloc_s number
(that seems rather fragile on my part, maybe I need to switch to another method to find the number......... maybe later)

calm nebula
#

You cannot go backwards

#

You can never go backwards

calm nebula
uncut viper
#

even if my code itself is entirely identical between versions?

next plaza
calm nebula
#

I identify locals by finding a pattern that identifies them

ivory plume
#

It depends on whether your mod references any of the fields/properties/methods which changed in 1.6.9. Even if the code is identical in Visual Studio, the compiled form may not be identical.

tiny zealot
lucid iron
#

sounds like it's safer to just do build for all mods then, even ones that didnt break think

uncut viper
#

i definitely should have thought of this before i excitedly downloaded the new beta SDVpufferthumbsup

calm nebula
#

yup, it'll just go "wrong version of binary, user has 1.6.8 you compiled against 1.6.9"

ivory plume
#

Well, you can always switch back to 1.6.8 and recompile against that. Most 1.6.8 builds should work fine in 1.6.9.

calm nebula
#

(it's worth, btw, setting the minimum game version if you go to 1.6.9)

uncut viper
#

yeah, its no trouble, just somethin im glad i asked before i released the mod without thinking about it lmao

next plaza
velvet narwhal
#

how is that more cursed than your gif

next plaza
#

I would say first person is a great way to avoid the whole player rendering problem... except MP

haughty charm
#

While that might appeal to some people, I have no desire for first-person or 3D Stardew

royal stump
#

amused by the idea of using ray tracing to make the game look like a snes rpg SDVkrobusgiggle

next plaza
#

(My old attempt, for those who haven't seen it)

lucid iron
#

oh i saw this on bilibili

#

newest version has ground looks like DokkanStare

next plaza
#

Interesting that they're dynamically generating the maps it looks like. I wonder if they'll stick with that approach once they try it with maps like the town

lucid iron
#

daggerfall valley ukimasu2

next plaza
#

(I hand modelled that map in my gif above using Crocotile)

uncut viper
next plaza
#

Well it was content pack driven so the answer was gonna be: When somebody else makes it 😛

lucid iron
#

Maybe it will become viable in 10 years when genAI eats enough modelers

haughty charm
#

(I first read that as when genAI eats enough modders)

royal stump
#

time to make an unofficial for mabel's map utilities, just so I can see it try to handle this SDVkrobusgiggle

next plaza
#

I think there's already 3D model generating AI

#

Probably couldn't generate a map matching a Tiled one though

#

Honestly this is kinda making me want to pull out my 3D mod again, but that feels kinda like a rude reason to do it

next plaza
#

Just do something like my Location Layer Tool did

royal stump
#

I'm not really sure how it was implemented, and some of the utility features seemed kinda complex with I poked it in 1.5 or so

lucid iron
next plaza
brittle pasture
#

qq - I see that the update checker takes into account 1.6.9 beta version of mods when you're on 1.6.9. what do I need to do for my own mods?

next plaza
#

It does? Huh

brittle pasture
next plaza
#

Interesting.

royal stump
next plaza
#

Esca, I have some ideas on how to implement it, but the problem is it wouldn't support placing things on those 'elevated' spots

#

I can think of another way to do it

#

But MP would be a pain for that

royal stump
#

yeah, honestly it seems like a fairly unpleasant feature to maintain and document to me SDVkrobusgiggle

uncut viper
#

everyone knows bridges are constructed with a safety factor of exactly 1, so obviously you shouldnt be allowed to place things on them SDVpufferthumbsup

ivory plume
#

(I just deployed a fix for the CurseForge prerelease auto-sync issue; the update-check server will automatically fix the versions now.)

next plaza
#

Methods:

  1. Store what layer a Character/Projectile (ConditionalWeakTable) is on, and only check collisions while on that layer.
  2. Have them be separate locations, and let multiple locations be visible at once.
next plaza
#

What's none specified? Pre 1.4.3?

#

For byGameVersion

ivory plume
#

Essentially it just means the GameVersion field in the request is null. Not sure why it is for some requests though; it might be Android versions or something.

next plaza
#

Which might be hard for a mod

rancid temple
#

Oh, were the geode crusher fixes not in 1.6.9?

next plaza
#

Geode crusher fixes?

rancid temple
#

They can't crush things that produce non objects

#

So it's currently throwing errors because it wants to make a hat

next plaza
#

Fixed error if a geode crusher produces a non-object item like a hat.

rancid temple
#

Hm

next plaza
#

That's on the 1.6.9 page

rancid temple
next plaza
#

I wonder if that's a problem with the patcher

rancid temple
#

Maybe it's the Combined Machines

calm nebula
#

no

#

SObject.heldObject

brittle pasture
#

heldObject is still Object

next plaza
#

Ahhhhhhhh

#

Yeah

brittle pasture
#

yeah that

next plaza
#

That would do it

calm nebula
#

unless that's changed since I thingie

#

last opened steam

brittle pasture
#

nope, not changed

calm nebula
#

about three months ago

#

( @ivory plume ^^ geode crusher still can't hat.)

next plaza
#

Atra make us a knitting mod!

calm nebula
#

Atra has fucked up this tubular cast on three times already

brittle pasture
#

I wonder if a fix would require changing the type of heldObject, which might be problematic

#

for compat reasons

calm nebula
#

ohhhh

ivory plume
#

Hmmm, yeah it supports Item right up to the last step:

heldObject.Value = (Object)newHeldItem;
calm nebula
#

no time like the present to break a bunch of mods again!

ivory plume
#

Time to change "Is this the modpocalypse" to yes. SDVpufferpensive

calm nebula
#

(I actually think it would be cool if heldObject because heldItem

#

among other things, Pathos, I'd love to put my sword on a table.)

brittle pasture
#

and heldObject can return heldItem as Object?

#

could work. would still break a bunch of stuff

next plaza
#

Yeah, I'm not sure it's worth the breakage for 1.6.9 😛

ivory plume
#

It would be a breaking change either way, since currently it's a NetRef<Object> (not Object).

next plaza
#

Clearly, what we need

#

Is a getter that returns a NetRefWrapperOfAnotherType<Object, NetRef<Item>>

#

What could possibly go wrong

ivory plume
#

How many mods reference items anyway.

uncut viper
#

a negligible amount

rancid temple
#

Less than 100%

next plaza
#

Let's go back to the pre-JA days. No new items to worry about

#

(For Legal Reasons This Is A Joke™️)

royal stump
#

add a placeholder item ID that wraps a non-object item, draws itself as that, and transforms into it when interacted with SDVpufferthink
i.e. the kind of annoying wrapper I use too often

calm nebula
#

honest to god Esca I would rather just put a chest in the heldObject spot

royal stump
#

probably more coherent for sure

next plaza
#

Yeah that sounds painful

#

Every time you deal with an item. if (item is WrappedItem w) item = w.Unwrap();

ivory plume
#

(I removed Fixed error if a geode crusher produces a non-object item like a hat from the draft release notes, though it'll still be on the beta page for a bit.)

next plaza
#

Will that get atra back into modding?

brittle pasture
next plaza
#

I'm suddenly for this change for inexplicable reasons

calm nebula
#

lol

brittle pasture
#

(Maybe I could add a dirty fix to EMC to make hat outputs work by patching the geode function to spawn a stone item, put a chest into it and put a hat inside. then the output will be a stone and a hat. call the stone what's left of the crushed geode)

calm nebula
#

(Result and Option)

next plaza
#

Would that get you back though? 😛

calm nebula
#

Probably not

#

Sorry

lucid mulch
#

I should try the smapi running on a newer version of .NET than what stardew intended again

#

I had it running, just didn't get paths fixed for the audio engine but that changed a bunch since I last did it

next plaza
#

I really should go to bed

#

Instead of sitting here thinking about bridges over maps

#

And the 3D mod

#

But not a combination thereof

uncut viper
#

(also not to interrupt, but would anyone be willing to showcase my mod for me? SDVpufferheart)

brittle pasture
#

sure!

next plaza
#

If Pathos is here you could probably get blacksmith-ified

brittle pasture
#

yes, become a cheeto

calm nebula
#

Button likes the blue

#

I respect that

uncut viper
#

ive already released mods

#

but i dont like orange

calm nebula
#

The blue is pretty

next plaza
#

Blue is > orange, I admit

uncut viper
#

eventually i will get purple

calm nebula
#

tbh the only nice thing about orange is the Dutch

uncut viper
#

and purple is my fav

lucid mulch
#

Bridges over maps just screams needing to fix the macro/micro pathfinding to handle maps where for macro pathfinding purposes is multiple disconnected regions

calm nebula
#

the dutch are nice.

velvet narwhal
#

(gaslight button into becoming orange)

next plaza
#

Not your shade of blue though

next plaza
calm nebula
#

a normal programmer (aka not me who overcomplicates shit) could probably do it in a day

rancid temple
#

One of them, one of them (late because I had to answer the door)

uncut viper
# brittle pasture sure!

thank you SDVpufferheart
https://www.nexusmods.com/stardewvalley/mods/27100

with this text:
"Mod authors! This one is made with you in mind! It adds a whole bunch of new triggers, actions, and game state queries that you can use to help your Content Patcher mod react to or perform more complex things, all using the same vanilla Trigger Action system that you're already used to!"

(and a "courtesy of @uncut viper" too if you wouldnt mind SDVpuffersmile)

next plaza
#

Honestly Cowpoke is probably the best shade of blue

velvet narwhal
#

(me running button through the ringer of user-based-questions)

lucid mulch
#

(I'm happy seeing vanilla features be expanded on instead of building adjacent infrastructure)

uncut viper
#

(the @ didnt work bc my username is not just Button—)

brittle pasture
#

FUCK I MESSED UP THE @

haughty charm
#

Congrats, Button!

brittle pasture
#

1000 YEARS OF SHAME

haughty charm
#

I can fix it, Selph, if you want to re-do it?

brittle pasture
#

yes please

#

thanks so much

haughty charm
#

Done..

uncut viper
#

and thank you from me as well SDVpufferheart

velvet narwhal
#

honestly shoulda made the image 169k reposts (for 1.6.9 small dig)

brittle pasture
#

Posting on behalf of @uncut viper : Mod authors! This one is made with you in mind! It adds a whole bunch of new triggers, actions, and game state queries that you can use to help your Content Patcher mod react to or perform more complex things, all using the same vanilla Trigger Action system that you're already used to!
https://www.nexusmods.com/stardewvalley/mods/27100

Nexus Mods :: Stardew Valley

A whole bunch of triggers, actions, and game state queries for Content Patcher mod authors to utilize.

uncut viper
#

i mightve if i knew 1.6.9 beta was gonna be released tonight

#

thank you selph <3

velvet narwhal
#

pathos just came in like a bombshell and the cheetos rose up

rancid temple
#

Gotta get all the initial error checking out of the way

next plaza
#

I would say I'm not a cheeto anymore, I'm cranberry sauce. But I guess I still have the cheeto role...

haughty charm
#

omg, Button, the first line of your docs. 🤣

velvet narwhal
#

it's right tho

uncut viper
#

its vastly important to me that i stave off as many nexus comments of "how do i use this" as possible

haughty charm
lucid mulch
#

cheeto was on the shelf for too long

rancid temple
#

What is it, flamin' hot?

velvet narwhal
#

hot fry

next plaza
#

I'm definitely not hot

#

So there's that

haughty charm
#

Limited Edition Cheeto

lucid mulch
#

looking at the mods adding new triggers/actions/gsq, has there been any mods to optimise GSQ yet?
as wasn't built with CP's caching methodology in mind

next plaza
#

I think someone was working on a hyper gsq

calm nebula
#

Khloe was trying a thing I think

#

The bigger problem is that GSQ don't have a concept of an update rate

#

a GSQ may

  1. change per tick
  2. change, but never per tick
  3. only change once a day
lucid mulch
#

Even on TimeChanged update rate patches, CP does smarts with deterministic and immutables to short circuit

next plaza
#

It could even change in the same tick! (RANDOM mainly)

#

Or is that what you meant by per tick

versed moss
#

For a second I thought someone needed me

uncut viper
#

i think thats partly why that new field on Trigger actions was added in 1.6.9 too, to help a lil bit

lucid mulch
#

the main GSQ I saw that prompted the question was the first on the list Spiderbuttons.BETAS_HAS_MOD which is an immutable provider in CP

next plaza
#

Yeah I've been inadvertently recreating some of CP's internal features for my CP alternative lately... fun...

#

You made a hasmod GSQ? SDVPufferThink

#

Seems odd since mods can just pass in {{HasMod: blah}} which evaluates to true/false

lucid mulch
#

I've been working on some json driven stuff for work, and I needed a condition system and one thing led to another and now ContentPatcher is in the design doc references

calm nebula
next plaza
#

Can't FTM take CP conditions these days too?

uncut viper
#

it was added for reasons like that (where i mostly thought "idk if there are situations where you might have a GSQ but not access to tokens but maybe?") and bc it was like 2min of work

calm nebula
#

and you sometimes want a HAS_MOD <insert gsq providing mod>, MOD_PROVIDED_GSQ

next plaza
#

Hmm, I guess so

calm nebula
#

(one of the last things I suggested in alpha, iirc, was that gsq could have a "hint" to their update rate associated with them.)

next plaza
#

One of the reasons I wanted a CP-driven spawnables system (like I wrote for dungeons system) was so you could do CP shenanigans with them

royal stump
#

(I did switch it to check CP before GSQ, and it skips any following checks if one fails)

next plaza
#

Oh nice

lucid mulch
#

the main performance win CP has is immutables and deterministics, the less work it has to do every iteration is key. (though less iterations are nice too)
(In part because a bunch of people just blindly add UpdateRate LocationChanged,TimeChanged for no reason)

calm nebula
#

Sure

#

I can drop @lru_cache or equivalent on all the gsq

#

but I have no real way of knowing, without hardcoding all of it, when to clear the cache

#

and god help if there are mod gsq

lucid mulch
#

The main one deterministic helped was Range, which prior to deterministic had to calculate every number from 600 to 2600 if you did a really silly range, but once it was marked as deterministic, it only had to calculate once if its inputs are immutable (which 600, and 2600 would be)

uncut viper
#

no one makes mod gsqs its fine

calm nebula
#

(and god help you if a mod decides to transpile a gsq for some reason. Oh wait.)

uncut viper
#

which gsq did you transpile

calm nebula
#

(well, AtraCore's not getting updated so at least there's that!)

#

MUSEUM_DONATIONS

next plaza
#

Ah, yeah

uncut viper
#

what was wrong with museum_donations SDVpufferthinkblob

next plaza
#

Atracore added a feature that let you stuff donations in a drawer but still count

calm nebula
#

it turns out when you make a global inventory another place museum donations can live you end up having to patch a lot of stuff

uncut viper
#

i see

uncut viper
#

was patching the getter on museumPieces not an option?

next plaza
#

Is that not a net field?

calm nebula
#

I rarely ever patch getters

uncut viper
#

are net fields unpatchable

calm nebula
#

no, those are fine

#

although frankly I think I rejected in this case for being really not my idea of a fun time

lucid mulch
#

most netfields are a field not a property though

calm nebula
#

performance wise

lucid mulch
#

so you would be patching the netfield class itself

calm nebula
#

(I tend to avoid patching methods that are only a small number of opcodes.)

uncut viper
#

granted it mightve/was probably different in 1.5, but ilspy at least says that MuseumPieces has a getter

calm nebula
#

they have a bad tendency to become inlined on some platform, probably mac

lucid mulch
#

ah museumPieces is a getter because it references netWorldstate, it isn't its own netfield

next plaza
#

Inlining 🤢

uncut viper
#

MuseumPieces has a getter, which returns museumPieces

next plaza
#

(I know inlining is a good thing… just inconvenient for modding)

calm nebula
#

Meanwhile, me: Inlining SDVpufferparty

uncut viper
#

and both seem to be netdictionaries

#

i dont know a lot about anything here for the record

next plaza
#

I’ve only ever used the no inlining annotation, never the aggressive inlining and one

calm nebula
#

Button, it's been a while, but I think:

#
  1. I wanted to avoid adding to the netdictionary itself, that was like the point
next plaza
#

To be fair I don’t write code that needs tight performance usually

calm nebula
#

I could in theory stick stuff "between" slots

#

(I've long joked about putting items at 0.5, 0.5 (don't do this))

#

but it felt like a mess and like I would lose objects

next plaza
calm nebula
#
  1. I couldn't easily just sub in a some IEnumerable concatinated thing
uncut viper
#

(also for the record i hope it comes across right that i dont say these things to "um akshually" any of y'all but so i can absorb these reasons and information like a sponge to learn more SDVpuffersmile)

calm nebula
#

oh, the new light source code (a) doesn't use the ring's (imo completely unhelpful) id field

#

and (b) has no deduplication at all

lucid mulch
#

Meanwhile SinZationalSharedSpaces makes new locations and can only read the save safely if the mod is loaded with the harmony patches disabling the code to skip the unknown locations)

calm nebula
#

well, it's unlikely!

next plaza
#

What’s shared spaces?

calm nebula
#

(int.MaxValue times int.MaxValue, not likely)

lucid mulch
#

a mod that removes cabins and makes the farmhouse front door go to all the cabin interiors

next plaza
#

Ah, that one

calm nebula
#

( @ivory plume the new light changes has orphaned Ring.uniqueID)

next plaza
#

Yeah that makes sense

lucid mulch
#

stardew really does not like locations not being deterministic from a new save unless its a building interior

next plaza
#

You could’ve stored a cabin offscreen 😛

lucid mulch
#

that was lame

#

I wanted true no cabins

calm nebula
#

that field had Issues in the first place (in 1.5.6 iirc it had an issue with collisions)

#

but now literally nothing uses it

next plaza
#

I really should go to bed since I have work tomorrow

#

Try not to break the beta too much!

ivory plume
velvet narwhal
#

(happy 1.6.9 beta, i now disappear into the depths that is called the 'bed' SDVpufferclueless )

pine elbow
#

so there is a 1.6.9 beta

languid aurora
#

Does Content Patcher have a way to specify the color overlay sprite to use for an existing item?

drowsy pewter
#

?

languid aurora
#

The new ColorOverlayFromNextIndex field is cool, but it'd be nice if there was a way to provide a color overlay sprite (or even a different one when there's an existing one) without having to redefine the existing item's sprite elsewhere just so it would be next to it

drowsy pewter
#

ah

brittle pasture
#

is this so you can add stuff like colored honey/mead without changing the item's original sprite location? doesn't seem so. that would be a feature request I think, but not sure if any's going to be added at this point

calm nebula
#

If this is about not having to copy the image into your mod

#

Just GetData on the texture, SetData into your texture

languid aurora
#

Mostly thinking about adding a color overlay for vanilla honey, but I'm sure there are plenty of other vanilla items people would like to be able to make a CP mod for to just add color to

brittle pasture
#

it would look off if the user has another item retexture mod, might be better from a jank standpoint to just copy it over

calm nebula
#

I wonder if you can run edge detection on the sprite

#

But such small sprites, it's iffy

#

Or k means cluster and pick the biggest non yellow cluster

#

(Also iffy)

#

Or go to the center of the sprite and flood fill until you hit a big value gradient (for definitions of big I'm not sure of )

languid aurora
#

You should change your name to atracomplicates

calm nebula
#

but what if they're using some pastel retexture where the honey isn't yellow?

languid aurora
#

I mean, in my case I was just going to color the label, so that wouldn't matter

calm nebula
#

(The joke is that would break "automatic label detection algorithm number two")

#

"Largest non yellow cluster"

modest dagger
#

atra is a simple being of chaos disguised as a being of order

drowsy pewter
#

the desire for compat doesnt really matter because it doesnt actually do anything for compat

languid aurora
#

You guys act like people use hundreds of mods at once or something /s

calm nebula
#

Look

#

This type of stupid theorizing is actually fun for me

#

Fixing what 1.6.9 broke in atracore seems highly unfun

languid aurora
#

Don't let me stop you, as you were SDVkrobusgiggle

brittle pasture
#

maybe pixels with hex values divisible by 7 can be colored. if you don't want a pixel to be colorable just add like 1 to any of the RGB value

#

there no need for a separate mask

drowsy pewter
languid aurora
#

Tell me about how you'll use a retro encabulator spin-down function to isolate the label nodules

drowsy pewter
#

Sighhh i have something really cool i was hoping to show off here before i went to sleep but it needs bugfixing first

#

See yall tomorrow

calm nebula
#

(I'm pretty sure the only thing broken in atracore by 1.6.9 is equipment light sources. Of course.)

brittle pasture
#

||(REDACTED LOLOLOLOLOL)||

drowsy pewter
brittle pasture
#

WOOPS SORRY

drowsy pewter
brittle pasture
#

(the rest of you saw nothing)

lucid iron
#

Oh yeah I saw a lot of yellow logs about light sources

#

It was there on a brand new save too

languid aurora
#

Alright I should sleep, later

calm nebula
#

On the bright side I get to say goodbye to the fun sync block BS

royal stump
#

speaking of fun theorizing, I just ran some tests to make sure you can optimize triggers somewhat by using CP to throttle them, which means it's totally fine if I add "Trigger": "UpdateTicked" SDVpuffernerd
(not that I plan to, but I will add one second triggers)
trigger actions have some caching that seemed like it'd cause issues, but CP apparently clears them whenever Data/TriggerActions is edited

#

some of the stuff I just tested is kinda moot when you can just remove the entries entirely, though, now that I think harder

proud wyvern
#

Lol what’s up with that:

Migrated from FAudio to OpenAL, which should improve performance when playing audio.
Updated FAudio from 21.7.0 to 22.9.1 (used for playing music and sound effects).

ivory plume
#

(Oh yeah, forgot to clean that up before beta.)

ivory plume
peak elbow
#

not stardew strictly speaking, but popping in to say thank you to Pathoschild. 💜 I was reading your repo last night to help untangle an issue I had with a mod for another game, because C# is new and scary to me.

deep cypress
#

Ummmm.... I'm getting this error... I didn't update anything, tho...

[game] An error occurred in the base update loop: ArgumentNullException: Value cannot be null. (Parameter 'key')
at System.Runtime.CompilerServices.ConditionalWeakTable2.GetValue(TKey key, CreateValueCallback createValueCallback) at System.Runtime.CompilerServices.ConditionalWeakTable2.GetOrCreateValue(TKey key)
at SpaceCore.Dungeons.DungeonImpl.ClearInactiveLevels() in C:\Users\space\Programming\StardewValley\StardewValleyMods\SpaceCore\Dungeons\DungeonImpl.cs:line 439
at SpaceCore.Dungeons.DungeonImpl.UpdateActiveLevels10Minutes(Int32 time) in C:\Users\space\Programming\StardewValley\StardewValleyMods\SpaceCore\Dungeons\DungeonImpl.cs:line 398
at StardewValley.Locations.MineShaft.UpdateMines10Minutes_PatchedBy<spacechase0.SpaceCore>(Int32 timeOfDay)
at StardewValley.Game1.<>c.<performTenMinuteClockUpdate>b__714_0()
at StardewValley.Game1.UpdateGameClock(GameTime time)
at StardewValley.Game1._update(GameTime gameTime)
at StardewValley.Game1.Update(GameTime gameTime)
at StardewModdingAPI.Framework.SCore.OnPlayerInstanceUpdating(SGame instance, GameTime gameTime, Action runUpdate)

#

Like, 5 hours ago, everything worked, now suddenly, it doesn't...

#

Also, on my wife's mac, Stardew just straightup will not work. \

#

After spending about five minutes stuck doing nothing, it says:

src/common/pipes.cpp (883) : fatal stalled crossthread pipe.
src/common/pipes.cpp (883) : fatal stalled crossthread pipe.
src/common/pipes.cpp (883) : fatal assert; application exiting
src/common/pipes.cpp (883) : fatal assert; application exiting

deep cypress
#

Trying a SMAPI re-install on my wife's computer.

#

MAC is fighting SMAPI, says it might could have viruses cause they just don't know.... I hate mac....

deep cypress
#

Thanks loves! Sorry for the flood of Apryll Tears, but luckily, this might could help someone!

calm nebula
#

Tbh quite a bit of that wasn't properly thought through and I personally didn't really like it (along other things, why the heck am I tracking the IDs when I could have tracked the LightSource instances. Like, i knew what i wrote would degrade badly if there were a lot of light sources, lol.)

#

Not a big deal to fix, just that I have to do it, and that and about a thousand other things

astral prism
#

where did i get pinged in here 🤔

astral prism
naive wyvern
#

yess

hallow prism
#

you should have an inbox to see pings

honest tundra
#

I am new to modding but I am thinking of updating a [JA] item producer mod to [CP] for 1.6, are there any tricky bits for JA that won't be easy to deal with just keeping the documentation open in a few tabs? I have links to the Json Assets author guide, content patcher documentation, and the wiki's modding guide for machines, between those and the old mod itself I think I have all the data there is, but I don't know is there more documents that will make it easier?

drowsy pewter
#

You should be okay! It would be helpful to have an example mod or the vanilla game code to look at too

rancid temple
keen bay
#

hello, what body base do you usually use to make clothes and hats?

velvet narwhal
lucid iron
#

Huh the trees sprite can be different size?

finite ginkgo
#

Not without some kind of framework for it no SDVkrobusgiggle

finite sequoia
#

Oh those look niiice

finite ginkgo
#

Speaking of trees with different sizes SDVkrobusgiggle

#

I just released Tree Size Framework

This mod allows content pack modders to create wild and fruit trees that are bigger (or smaller!) than the vanilla trees! PufferFingerGuns
The docs are linked in the mod page;

https://www.nexusmods.com/stardewvalley/mods/27123/

Nexus Mods :: Stardew Valley

A simple mod which allows modders to create trees with varying sizes outside of the vanilla limits.

drowsy pewter
#

Omg its the perfect framework for my new tree sprites that i randomly made SDVpuffereyes

finite ginkgo
#

What a weird totally not planned coinkydink SBVLmaoDog

drowsy pewter
#

Hahaha

marble verge
#

Hi everyone. Quick question: how can I make a tilesheet seasonal?

finite ginkgo
#

As long as the tilesheet’s name starts with <season>_ it should switch between the seasonal versions automatically

marble verge
#

Okay, thanks. 🙂

gaunt orbit
#

*in outdoor locations

#

in indoor locations you will have to swap them manually

marble verge
#

Ah, okay. This one's for an outdoor location, so no worries there.

keen bay
velvet narwhal
#

you weren't ignored, there's just some things you have to know: !unpack !fs if you want clothing items with content patcher, you'll be able to find the farmer body with the unpacked version of stardew (this does not affect your actual game), if you want a framework to do it for you (without needing to know much about coding) you'll find fashion sense easier (to some degree)

#

??? why commands hate me

#

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

velvet narwhal
#

!fs

ocean sailBOT
#
Fashion Sense

Fashion Sense is a framework mod that allows modders to create static or animated clothing, hair, accessories, and shoes that can be accessed through a special in-game menu. To access this menu, players will need to obtain the Hand Mirror from Pierre's Shop. The framework supports multiple content packs and also adds the ability to save, load, and export custom outfits.

Mod Users: Install Fashion Sense as well as any desired content packs. Content packs can be found by searching Nexus, or for an interactive list, click here.

Mod Authors: Instructions, tutorials, and tips for creating FS content packs are available on the mod's wiki.

marble verge
#

Is it possible to add a facing direction to Warp?

rancid temple
#

Commands have to be the first thing in a message, can't post more than one per message

velvet narwhal
#

this why i don't wanna be a cheeto, i'm dumb

marble verge
#

Assuming said Warp was added through CP?

rancid temple
# keen bay hello, what body base do you usually use to make clothes and hats?

I'm no artist, but I've seen a few different methods. Haven't seen there be a real specific way, but as Aviroen said you can unpack the game files and put together a farmer base from the different pieces that farmers are made of, you can also take an NPC and try to create a base based on them. I wanna say I've seen some reference to bases that have been made in the past but discord search is rather difficult to use so I'm not sure where they are

velvet narwhal
#

(tbf i think the unpacked farmer folder has a nekkid body)

rancid temple
#

It's all nakey, farmers are built paper doll style

velvet narwhal
#

oh i meant the one thing god what was it

#

oh nvm that was my own edit, i had a headless spritesheet

#

the crazy things i have to do to understand how the farmer sprite draw works SDVpufferpain

#

(round 6 of cleaning up all of my trigger actions to put into BETAS)

rancid temple
velvet narwhal
#

i think..... the game keeps the direction faced from when the player interacts with a door, but regular warps i think it's always facing direction down? SDVpufferclueless

rancid temple
#

I dunno if I've ever paid attention when using a warp but I would think it's just the direction you were facing

velvet narwhal
#

my multitudes of pressing the 1 key (my return scepter) when tabbing back to the game is immeasurable

rancid temple
#

Well return scepter is different, you face down to use it

velvet narwhal
#

oh true

#

hmm i can check with my custom npc it has a warp totem

#

oh nvm

#

same concept

#

using a warp totem, face down

marble verge
#

So the reason it works with the bus trip is because it's scripted?

#

Facing down after arrival?

rancid temple
#

I have a custom warp but waiting on game first time load today, takes forever

velvet narwhal
#

oh like a touchaction warp?

marble verge
#

Yip.

velvet narwhal
#

i think that keeps player direction

#

since it's a stepped tile

marble verge
#

Aha.

#

Well, it's only a minor inconvenience.

rancid temple
#

Yeah, it does indeed keep facing

velvet narwhal
#

i just try to make my maps cohesive, if i interacted with something facing up, the rest of the room is indeed, upwards

#

except basements, i throw that out the window

marble verge
rancid temple
#

I have a ladder that you can use from two directions, which works fine in one direction but not the other lol

#

But ultimately I don't really care because I'm not using the ladder for style

velvet narwhal
#

yeah ~aesthetics~

rancid temple
#

If I cared how it looked, I certainly wouldn't be using a ladder lmao

velvet narwhal
#

i pray i don't get any more bug reports before dropping a major version update for my mod

#

i keep having to get interrupted by my own past mistakes

marble verge
#

As an aside, why do TileData entities not adhere to the 16x16 format?

velvet narwhal
#

? Tiled's square system?

#

you have to hold control and it should snap to grid

marble verge
#

Aha. But why is it possible to make it any size? For other games, I guess?

velvet narwhal
#

yeah, we're not the only ones that use tiled SDVkrobusgiggle

marble verge
#

Figures 😄

velvet narwhal
#

you can also make the actual tile sizes anything you want

marble verge
#

But SV isn't going to like that, I assume.

velvet narwhal
#

it'll scream

marble verge
#

xD

velvet narwhal
#

(don't ask me how i know this)

marble verge
#

Hahaha. Well, back to editing. Appreciate the help!

simple bramble
#

guys

#

does anyone has a mod that makes the dirt looks mroe like real watery dirt

#

if that makes any sense

#

like

#

i want it mroe brown

#

and meaningful

velvet narwhal
simple bramble
#

IDK HOW TO EXPLAIN

simple bramble
velvet narwhal
#

no worries, we're just the ones that make it here

#

no braincells to remember mods, unfortunately

#

i've completely forgotten, but was/is that i18n splitter being pushed forward?

rancid temple
#

Splitter?

velvet narwhal
#

uhhhh contextualizing the default.json, like squints

#

dialogue_default.json? or something like that?

#

because of RSV's default.json being huge

rancid temple
#

I didn't know you could, thought they had to be specifically named

velvet narwhal
#

i vaguely remember in a haze that it's specifically because expansion mods with intensive dialogue would benefit from a default.json splitter

rancid temple
#

The only thing I'm finding relative to that is in regards to not pushing the translation files directly to a mod and instead having a translation mod split from the main mod, I believe

lucid iron
#

looks merged

#

should be in 4.1.0 beta now?

hallow prism
#

do someone know if you can have a light in an event?

velvet narwhal
#

addLantern <row in texture> <x> <y> <light radius> ?

rancid temple
#

Oh, if I had just scrolled the rest of the way down on the wiki page I would have seen it lmao. That's neat

velvet narwhal
#

the wiki isn't loading for me for some reason

#

(it's probably my internet)

hallow prism
#

thanks

#

hmm, i need to see if i find an item that looks nice for what i want then

velvet narwhal
#

i don't think there's a flat lightsource from what i can tell

#

although you might be able to get away with one of the invisible tiles?

hallow prism
#

yeah i considered that, but it may be fragile if others use empty space for whatever reason

#

i will tinker with that and see 😄

#

(i would have loved being able to remove them too, but well)

rancid temple
# keen bay ty so much

You could also try #making-mods-art , don't get discouraged if nobody answers right away, the server has a lot of variance in when people are active so sometimes you just have to wait and ask again later

velvet narwhal
#

i think art has the more eastern-world audience SDVpufferclueless

#

or do they flip the maps over there, is north america considered east on maps there? SDVpufferclueless

lucid iron
#

@ivory plume A while back someone encountered issue with fish pond not respecting DrawShadow, seems like it was because FishPond draw does not check ShouldDrawShadow. Is it still enough time to fix that in 1.6.9 you think?

velvet narwhal
#

"weast"

lucid iron
#

north america isnt real

velvet narwhal
#

true, i want to be brought back to reality

#

the calendar just made me realize i have to tell my uni my specialized major and i am still At A Loss ™️ of what i want to do

wispy widget
#

Hey yall! I'm working on some new heart events and I can't for the life of me figure out this whole forking events thing. I've gotten it to work up until that part, but it doesn't pop up the two responses after the question and the whole event gets stuck. I just need help with formatting for a simple, yes or no answer to a question in the event. I've been reading through the modding wiki and guides online, but I just feel like I'm missing a step somewhere. Is anyone able to help me out with just getting the basic template for a simple yes/no event fork?

hallow prism
#

depend, you want a fork? i usually use quick questions

mighty quest
hallow prism
#

fork is good for two separate script, quick question nice for scrips that tend to merge at the end

velvet narwhal
#

springtown

hallow prism
#

thanks

wispy widget
velvet narwhal
wispy widget
velvet narwhal
#

oh okay

#

one sec i have a decent example

hallow prism
#
        quickQuestion {{i18n: Question}}#{{i18n: Yes!!!}}#{{i18n: No!!!}}
        (break)emote farmer 32\\pause 300\\move farmer 1 0 1\\pause 500
        (break)emote farmer 8\\move farmer -6 0 3\\pause 500/pause 300```
#

so this is a quick example of a quick question. You have your question/answers, then a break per choice

#

in those break the script is separated by \\. Using / will end the separated script and return to the common part

#

so for example, each pause 500 is separate, but pause 300 will be the start of the branch mergings

wispy widget
hallow prism
#

yes

velvet narwhal
#
"<event unique id>": "/quickQuestion {{i18n:Question # answer 1 # answer 2}}(break)switchEvent answer1(break)switchEvent answer2",
"answer1": "pause 200/switchEvent <event id1>",
"answer2": "pause 200/switchEvent <event id1>",
"event id1": "pause 200/end"```
there's a multitudes of ways to do it
#

i like to break them because i get lost doing \\

hallow prism
#

that's valid, i got so confused over that initially

#

like i thought you would have only one command different because i didn't know how it worked initially

velvet narwhal
#

oh trust me, a lot of trial, error, tears, and json yelling at me

#

if you want a physical example:

#

these don't actually branch back into a singular, they end on their own

#
"LECreed/e 65360190/f Lance 1250/": "continue/-1000 -1000/farmer -100 -100 0 Lance -100 -100 0 MarlonFay 4 11 2/skippable/viewport 6 20 clamp/warp Lance 6 13/shake Lance 300/textAboveHead Lance \"{{i18n:Lance.5Heart.01}}\"/pause 500/playSound doorClose/warp farmer 6 19/speak Lance \"{{i18n:Lance.5Heart.02}}\"/pause 400/speak Marlon \"{{i18n:Lance.5Heart.03}}\"/pause 300/shake Lance 200/faceDirection Lance 2/speak Lance \"{{i18n:Lance.5Heart.04}}\"/quickQuestion {{i18n:Lance.5Heart.05.q}}(break)switchEvent LECreed_wandering(break)switchEvent LECreed_gil(break)switchEvent LECreed_resupply",
"LECreed_wandering": "pause 200/speak Lance \"{{i18n:Lance.5Heart.06}}\"/pause 300/speak Lance \"{{i18n:Lance.5Heart.09}}\"/end invisible Lance",
"LECreed_gil": "pause 200/speak Lance \"{{i18n:Lance.5Heart.07}}\"/pause 300/speak Lance \"{{i18n:Lance.5Heart.09}}\"/end invisible Lance",
"LECreed_resupply": "pause 200/speak Lance \"{{i18n:Lance.5Heart.08}}\"/pause 300/speak Lance \"{{i18n:Lance.5Heart.09}}\"/end invisible Lance"

my question looks like this:
"Lance.5Heart.05.q": "Why are you here?#Just wandering around.#I have a quest from Gil finished!#I'm resupplying before another mine delve!", //just wandering/gil quest/resupply

wispy widget
#

So if question is meant to come from a NPC should I start it with speak NPC "/quickQuestion..... or is that not necessary?

velvet narwhal
#

quickquestion is it's own command

#

much like how message speak etc

#

it comes up as a portrait-less menu click

hallow prism
#

usually what i do is

velvet narwhal
#

(not the same box but this gets the point across)

hallow prism
#

npc speak : "hey, what do you think of ice cream?"
and then a "(what do you say)"

#

you have a bit of freedom in how you want to do it because there's definitively several approach

#

so whatever makes sense for you 🙂

velvet narwhal
#

you just have to remember that it sticks to the order if you do actually stick to the 1 dialogue line instead of fixing it in the event code

#

lumina's example uses 3 separate i18n lines, while mine uses 1

#

honestly there's a lot of wild things you can do with events SDVpufferflat

brittle ledge
#

Jorts and Jean's intro event has an example of quickQuestion if that would help!

wispy widget
#

@velvet narwhal @hallow prism So, just to make sure I got it right. It would be one of these two ways to do it?
"Original Event": "Original Event leading up to the question /quickQuestion "Question Goes Here" (break)switchEvent "Answer 1" Answer_1 (break)switchEvent "Answer 2" Answer_2",
"Answer_1" : "storyline 1",
"Answer_2" : "storyline 2",

"Original Event": "Original Event leading up to the question /quickQuestion "Question Goes Here" #"Answer 1" #"Answer 2" (break) Storyline 1 using \ to seperate instead of / (break) Storyline 1 using \ to seperate instead of / /Merged ending goes here",

velvet narwhal
wispy widget
#

@velvet narwhal Got it! So it's this?:
"Original Event": "Original Event leading up to the question /quickQuestion "Question Goes Here" #"Answer 1" #"Answer 2" (break)switchEvent Answer_1 (break)switchEvent Answer_2",
"Answer_1" : "storyline 1",
"Answer_2" : "storyline 2",

velvet narwhal
#

just remember, because you broke and switchedEvent, i would suggest putting a pause because you can think of them as continuing from the original event code

#

you don't have to do the music/viewport/actors again

wispy widget
#

@velvet narwhal @hallow prism @brittle ledge Thank you all for your help!!

ivory plume
hushed thorn
#

Okay, So, I have been working on a personal version of the "Farmhouse Basement Mod" by MiniPantsu on Nexus just to update it to the latest version and it is SO close to being there, but I have a weird glitch with the vanilla map being partially overlayed onto the modded map. I have been nailing away at this for some time and this is the best I can get it so I wanted to post here to see if anyone might know a solution.

   "Format": "2.3.0",
   "Changes": [
      {
         "Action": "EditMap",
         "Target": "Maps/FarmHouse2",
         "FromFile": "assets/FarmHouse2.tmx",
         "PatchMode": "Replace"
      },

      {
         "Action": "EditMap",
         "Target": "Maps/FarmHouse2_marriage",
         "FromFile": "assets/FarmHouse2_marriage.tmx",
         "PatchMode": "Replace"
      },
   ]
}```
P.S. Yes, I am also running other mods, I wanna make sure it works with my load out, but there is also no other mod that is touching interiors, Tilesets for maps, or the Farmhouse map itself. I can confirm it is something wrong with the mod I am working on in particular.
#

I have been chipping away at this for hours last night so any help will be greatly appreciated.
V@ - @ V

torpid crystal
#

Guys do you think i could find some people here and build up a Team for making a mod?

#

Or do you reccomend other ways to find ppls

rancid temple
#

I guess this is technically the right place, though you're more likely to find help making a mod yourself than people wanting to join a team here

#

I think most people willing to work on someone else's vision are doing so through commissions

calm nebula
#

That is what is happening

#

[[ScienceHouse]]

#

...I tried

velvet narwhal
#

It would be nice to have a thread or something for when people ask that question though, but inevitably it's just a, "I only enjoy working with me myself and i"

calm nebula
#

There are teams that form! But usually only when you have a track record

velvet narwhal
#

Fair. I technically have a team but I know in the end it's me working for my own mod SDVkrobusgiggle

hushed thorn
velvet narwhal
#

So many ideas for BETAS, BUT SO MUCH MUSCLE PAIN SDVpufferflat

brittle ledge
#

Yeah, ime the multi-person projects that are successful still have the leader doing the majority of the work.

#

Most of the ones I've seen fail, the leader expects to be "ideas guy" and have everyone else do the hard parts.

drowsy pewter
#

I'm an artist, writer, and programmer looking for an ideas guy to give me purpose

rancid temple
#

You've doomed yourself again

velvet narwhal
#

Meanwhile I let my discord be the "ideas guy"

#

It works out great SDVpuffermoustache

calm nebula
#

I still want my unlockable bundles Meadowlands farm

velvet narwhal
#

Yknow I definitely understood each word but in conjunction it made no sense

calm nebula
#

I've been theorizing a Meadowlands farm

#

That requires little mini fetch quests to expand the land, etc

#

Best framework to use is Unlock able Bundles

velvet narwhal
#

Oooh I think sve has that land purchase bit or whatever 🤔

calm nebula
#

(I actually have a pretty specific vision here.)

brittle ledge
#

Are there any farms that start with farm buildings (vanilla or custom) on them or is that a C# thing?

rancid temple
#

Meadowlands starts with a coop

velvet narwhal
#

The magic grass one in vanilla comes with chimkins

calm nebula
#

But, again. I'm allergic to dependencies

#

even avoiding atracore here

calm nebula
#

So, no custom c#. If UB or CP don't have it I won't use it

#

Bit of a challenge:P

velvet narwhal
#

I already have an expansion mod of my own in the works SDVpufferflat

brittle ledge
#

I suppose you could just add them to the map in Tiled but they wouldn't be movable or paintable, eh

calm nebula
#

Like, the idea of spawning chickens? Sure

#

Easy enough

#

Five minutes of c#

spice inlet
velvet narwhal
#

Can recipes have a mailflag?

rancid temple
#

Could also go the most workaround route and just put all the resources needed to build a coop in the starting package lol

round dock
#

Question, say you make a mod that replaced the word chicken with "chimken", what would it require?

calm nebula
#

You have no clue how much I need that

hushed thorn
# calm nebula Look up renovations

So, quick follow up to this, I am guessing all of these are the renovations and I have to go through and update the house in each an every one?

velvet narwhal
hushed thorn
#

DEEEEP INHALE

#

alright, I'mma make lunch and just do it, ty for the help.

calm nebula
#

I also want to see a farmhouse use renovations well tbh

velvet narwhal
#

(This is why I don't touch the farm/farmhouse)

brittle ledge
hushed thorn
rancid temple
#

This is why I try to avoid patching any vanilla maps, if I can't make it in a new location I'm not sure how badly I want it

hushed thorn
#

Anywhoooodles, Merci for the help, Maties. o7

velvet narwhal
#

Oh yeah and the extra steps in content patcher when you touch vanilla maps naw I'll keep spacecore dependency for the totem warps

calm nebula
#

Delixx, why are you Pina colada

round dock
velvet narwhal
#

Atra and I gonna sing the escape song

spice inlet
brittle ledge
velvet narwhal
#

Vanillafied coconut liquer and pineapple juice bam

calm nebula
#

And dancing in the rain?

round dock
velvet narwhal
#

L a w s c h o o l SDVpufferpain

#

I took one cwiminal justice class and took my a for social science and never looked back

#

WHY DID IT SAY CWIMINAL

round dock
#

I have criminal procedure on Thursday and I'm on Discord to temporarily forget about my life choices.

round dock
velvet narwhal
#

My misdeeds are showing through my phone autocorrect

#

Yknow css just for you

#

I'll make my Lance mod say, "Chimkin?" In response to a child's words

round dock
teal bridge
cyan marsh
#

ugh

#

I just started in reupdating my mods... and it gives me this error: ```
Severity Code Description Project File Line Suppression State
Error CS0246 The type or namespace name 'StardewModdingAPI' could not be found (are you missing a using directive or an assembly reference?) EventRepeater E:\Stardew Valley Mods\Event Repeater\ModEntry.cs 4 Active