#making-mods-general

1 messages · Page 86 of 1

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.

warm garden
#

Yeah I tried that too, the weird thing is earlier today I followed the mod guide on the wiki since I've never made a mod before, and it worked perfectly that first time. But when I decided to actually start my own this manifest error started happening.

lucid iron
#

do you have the game open maybe?

warm garden
#

nope

old edge
#

Ok I can't use it anymore then

warm garden
#

steam is fully closed too

old edge
#

Since I don't have 1.6.9

lucid iron
#

no idea then yggy

old edge
#

How would I use the removedelimited function to achieve the same task

lucid iron
#

maybe you should just update to 1.6.9?

rancid temple
#

Remove and then Append I would guess

lucid iron
#

it is come out in a few days anyways

hard fern
#

how would i go about making my npc not show up until later in the day? I uh, am bad wit schedules

rancid temple
#

Like you want them to be completely inaccessible until later?

hard fern
#

yeah

cyan marsh
#

nvm.. i found a tester in my community

#

I think i've got the ItemList command set

proven spindle
# hard fern yeah

Could do a warp room (a map that isn't meant to be accessed by the player) with an npcwarp so only the npc can enter and leave

vague acorn
#

good evening lovely people! what are yall working on?

acoustic summit
#

Making a slimey guy bounce

hard fern
#

warp room>

#

?

rancid temple
#

They described it in the same sentence lol

old edge
#

Never knew how to use these

rancid temple
#

Yeah I've only used them a few times

cyan marsh
ocean sailBOT
#

Log Info: SMAPI 4.0.8 with SDV 1.6.8 build 24119 on Microsoft Windows 11 Home, with 6 C# mods and 0 content packs.

brittle ledge
hard fern
#

😓 ive never heard of a warp room before

brittle ledge
#

(I'm at work)

acoustic summit
#

if you use SVE you can teleport to some npcs like clare in the morning and find them in this empty void

#

thats a warp room

vague acorn
proven spindle
# hard fern 😓 ive never heard of a warp room before

Basically just add a map (a single tile will do, though you can make it fancier if you want) and add an npcwarp to it that leads to one of the main maps, then in your npc's schedule tell it to go there. Since there's no player warp, the the npc'll vanish from player-accessible areas

vague acorn
#

i wonder, how do you add new aquarium fish?

hard fern
#

ahh

rancid temple
#

There's only a little bit more room on the aquarium fish spritesheet

vague acorn
brittle ledge
#

I'm pretty sure aquarium compat is now okay with 1.6?

acoustic summit
vague acorn
rancid temple
#

I thought it was added in 1.6 lmao

vague acorn
#

where are they defined though?

acoustic summit
#

you can use a seperate spritesheet and reference it seperately

rancid temple
#

Was it a more recent change to have separate sheets?

proven spindle
#

I personally like to go all out with my warp rooms so my npcs are comfy lol. My mod jam entry's warp room has couches, a game console + tv, and a fridge. None of that's required tho

hard fern
#

time to open tiled LOL

vague acorn
#

oh wait im silly i found it XD

acoustic summit
#

Its in data/AquariumFish

rancid temple
acoustic summit
#

and you reference the custom texture as the last slot in the data

brittle ledge
#

Nah, aquarium was a 1.5 thing. I'm not super into the details but I think it basically dynamically patches the aquarium like it does the items and it's no longer tied to a specific index

acoustic summit
#

I have an example in my shinyFish mod

vague acorn
#

yeah seems like there's no way to specify a spritesheet

acoustic summit
#

There is

vague acorn
proven spindle
acoustic summit
#

"ID" : "Sprite Index/type{fish, eel, float, static, ground}/(Customdata}/texture"

#

like this: "397SHN": "86/static/////Mods\ShinyFish\ShinyAquariumFish/12 4",

rancid temple
#

Oh I see why I didn't know about the texture field, it's another one of those asides in a sea of information on the migration page with no link to it in small text

acoustic summit
vague acorn
#

interesting

proven spindle
rancid temple
#

I love that it got added to the Items page

lucid iron
#

what message do you want

acoustic summit
vague acorn
#

yeah of course

#

i do need to load the sprites

#

the spritesheet is 24x24 right?

proven spindle
#

Up to you

acoustic summit
#

Yep 🙂 just clarifying incase

#

24 by 24 is the format I believe yes

vague acorn
#

oh ): that kinda ruins my original plan

#

but it's aright, ill just have to split the sprites

vernal bone
#

crying in the club rn

rancid musk
#

Nexus really needs to address how search works. This is just silly.

brittle pasture
#

doesnt it sort by most downloads by default

acoustic summit
#

Its weird cause when you dont press enter the results are 10x better, like the pre-results it shows

rancid musk
#

It seems to sort by Whatever You Want Last by default

#

But being serious it defaulted to date published

#

The dropdown on the search box has better sorting than the actual search page, but it also has a tendency to just kind of break, for me

brittle pasture
#

Weird, I just did a sample search on my phone and it defaults to most endorsement

vague acorn
#

another question, what is the best way to increase a fish's chances of being chosen when fishing?

#

i want to have a fish that appears a whole lot when a specific condition is met

#

so i want it to absolutely dominate the pool at that condition

rancid temple
#

Generally referred to as spawn chance I believe Sorry I misread the question lmao

brittle pasture
#

Location fish data has a precedence field

vague acorn
#

(probably using the location's fish data)

#

the lower the number is the better the chacnes are right?

brittle pasture
#

that's controlled by the actual chance value
precedence just ensures your entry gets checked first

#

and yes the lower the earlier it gets checked

vague acorn
#

perfect!

acoustic summit
hard fern
#

aha, the void.

vague acorn
#

the chance is already at 1.0

acoustic summit
#

I found that changing precedence is the most volatile of the changes for chance

rancid musk
brittle pasture
#

ah, wacky nexus wackiness

#

I wonder if I changed that settings when I made my Nexus acc nearly a decade ago

#

and it actually defaults to recent files which would be rather boneheaded

hard fern
cyan marsh
#
this.mailIDCount.Value = Game1.player.mailReceived.Count;``` why is this giving me a null reference
hard fern
#

no clue if im doing this right...

brittle pasture
cyan marsh
#

yep

#

I've always have

lucid iron
#

dumb idea what if you debounce it with delay action

cyan marsh
#

Lookie.. i can now generate Item lists with just a command... even accounts for modded items

cyan marsh
lucid iron
#

StardewValley.DelayedAction DelayedAction

#

it let you call a method after delay (in miliseconds)

#

but hm im pretty sure the farmer would have been init at that point Thqnkqng

lucid iron
cyan marsh
#

my git is updated as of today

#

like 315 i believe

lucid iron
#

where do you init private readonly PerScreen<int> mailIDCount;?

#

ive not used PerScreen before so im unsure

vague acorn
#

I kinda love these

cyan marsh
#

Perscreen is for dualscreen

#

local multiplayer in other words

lucid iron
#

yea but do u need to new() it

cyan marsh
#

nope

uncut viper
#

(you do)

cyan marsh
#

never had to before

lucid iron
#

smapi changes probably

#

im too new to know the history here but just try slapping = new(); on them

cyan marsh
#

considering none of the other Perscreens are broken....

#

it's a null reference.. and it's not MailIDCount

#

it's Game1.player.mailReceived

uncut viper
#

every example of perscreen ive seen has always initialized it
if initialization is required, then you'd ofc get a null reference exception when trying to get the .Value of a null PerScreen

cyan marsh
#

it's never had that before..

rancid musk
#

You absolutely need to use new() with PerScreen

#

And you always have

cyan marsh
#

but i never had

rancid musk
#

It's a class, you need to instantiate it.

uncut viper
#

its likely that all your other perscreen stuff IS broken. but your code never makes it far enough to check them and you never encounter it

cyan marsh
#

i've never had to and Pathos assisted with understanding them

#

Event Repeater is one of my oldest mods

#

<.< if this was an issue it'd of long been here

uncut viper
#

well, try initializing it and see if it works

cyan marsh
#

@ivory plume did you make a change to PerScreen?

ivory plume
#

Nope.

cyan marsh
#

why is everyone saying i need to suddenly use new with it

rancid musk
#

It's a class. You need to instantiate it. That's how C# works.

ivory plume
#

(You do.)

#

I don't think that code has ever worked as-is?

cyan marsh
#

<.< so you're saying i should of been doing that

rancid musk
#

I am looking at decompiled Event Repeater 6.5.8 and you're doing it there.

cyan marsh
#

<.< then i know whats wrong

#

it means I always have

#

but this code was recovered and it was removed xD

#

XP explains alot

#

i haven't really looked at all the recovered code

#

there.. that fixed it...

#

I just took things for granted that it ported good

#

Looks like Dear Diary works fine

#

mccry that stressed me out

#

with the issue fixed, I can get back to NPC Utility..

rancid musk
#

On porting related news, I'm updating Cloudy Skies... and somehow the only thing that broke in 1.6.9 is the television menu override?

#

All these harmony patches, including transpilers... and what broke? The basic menu thing

cyan marsh
#

Now, next on my agenda... acquiring a list of available Maps in game

rain basalt
brittle pasture
rancid musk
rain basalt
#

no clue lol working on a new mod idea thats compleatly crazy and have no idea if its even worth it ^..^ but still gona try

cyan marsh
#

anyone has insight on this? cs Game1.locations.ToList().ForEach(location => { });

brittle pasture
#

use Utility.ForEachLocation instead (I think I spelled that right)

rancid musk
#

What are you trying to accomplish

#

You said acquiring a list of available maps, but what do you need a list for?

cyan marsh
#

This mod is a utility for the new NPC Creator

#

basically, if you wish to mod using existing mods, you can use this mod to acquire all items, maps, npcs..

#

so NPC Creator has updated data for you to use

rancid musk
#

Then Utility.ForEachLocation(loc => { return true; }, includeInteriors: false); would probably be best.

#

Excluding interiors because you really don't need to go digging through the list of locations associated with constructed buildings.

cyan marsh
#

that would be a problem.. and I'd have to figure how to sort them.. because I only want maps that are useable in events

brittle pasture
#

though do you really need the actual locations, or just reading from Data/Locations would suffice

finite ginkgo
cyan marsh
cyan marsh
rancid musk
#

It should, yes.

#

Mind you, some mods might not inject all their maps into that all the time.

cyan marsh
#

so I just need to access that..

rancid musk
#

DataLoader.Locations(Game1.content) is your friend

#

(DataLoader is your friend in general for ensuring game assets are loaded with the correct types.)

cyan marsh
#

never used it before..

brittle pasture
#

You did use it, albeit indirectly, when you got the list of items in game

cyan marsh
#
        public void ItemExtractor()
        {

            foreach (IItemDataDefinition itemType in ItemRegistry.ItemTypes)
            {
                foreach (string id in itemType.GetAllIds())
                {
                    Item item = ItemRegistry.Create(itemType.Identifier + id);
                    if (item.canBeGivenAsGift())
                    {
                        try
                        {
                            ItemList.TryAdd(item.DisplayName, id);
                        }
                        catch (Exception ex)
                        {
                            Monitor.Log($"{ex.Message}\nSkipping {item.DisplayName}", LogLevel.Warn);
                        }
                    }
                }
            }
            string path = Path.Combine(Environment.CurrentDirectory, "ExtractedData", "ItemList.json");
            File.WriteAllText(path, JsonConvert.SerializeObject(ItemList, new JsonSerializerSettings { Formatting = Formatting.Indented, NullValueHandling = NullValueHandling.Ignore }));
            Monitor.Log("ItemList saved!", LogLevel.Debug);
        }
#

not sure how they correlate

brittle pasture
#

itemType.GetAllIds() call to the data loader's objects data sheet under the hood

#

but anyway you don't have to worry about that for now; iterating over what Khloe posted should work

cyan marsh
#

trying to get that to work properly

#
foreach (KeyValuePair mapinfo in DataLoader.Locations(Game1.content))``` this isn't working
rancid musk
#

Just use var for the type and save yourself a headache, lol

cyan marsh
#

come to think of it

#

why am i not using var

rancid musk
#

Otherwise you'd need KeyValuePair<string, StardewValley.GameData.Locations.LocationData>

dim yew
#

Are there any common reasons why pressing the specified option on the event fork would just… skip the fork command and proceed with the event as normal?

#

I’m very confused

cyan marsh
#

can you be more specific?

#

rather what how are you forking it

#

using $q or question

dim yew
#

Yeah so my event script just says question fork0 \”#dialogue#answer#answer#\”/fork [event]

#

Actually wait

cyan marsh
#

fork0 is first answer

dim yew
#

Okay why does the wiki have a hashtag before the dialogue because I feel like that may be the issue

cyan marsh
#

the # separates the answers

dim yew
#

Yeah, in the wiki there’s a hashtag right after the first quote also

#

like \”#

#

Let me try without it

velvet narwhal
#

SDVpufferthinkblob do you want 3 separate options? quickQuestion is probably your best bet

dim yew
#

Yeah it was the # 😩

cyan marsh
#

i prefer to use $q

#

easier to control and and it's response ID can be recalled anytime

velvet narwhal
#

i only use fork if i want a [yes] -> new event, [no] stop event
but then again i've transitioned everything out of that and i use quickQuestion because it just does what i want

dim yew
#

I had to use fork because the event stops if you select no 🤣

#

But it’s working now so I’m good

#

I think that might be an error in the wiki though.

#

Or maybe I misread which is more likely.

brittle ledge
#

quickQuestion my beloved

cyan marsh
brittle ledge
#

You can end an event early with quickQuestion too! I use it for one of Wren's heart events.

cyan marsh
#

need to remove that Default tho

velvet narwhal
#

quickquestion my beloved, until i forget i don't need to escape quote the damn question bit of it and it throws an error at me because i'm copy-pasting

cyan marsh
#

also the maps that don't apply to events

acoustic summit
#

Someone taking the time to translate your mod into their language is so nice, really just gives you the smiles

sage jasper
#

hey how would i go about trying to start making a mod that retextures polycart minecarts? i havnt made a mod before

devout otter
#

You can start by editing the texture within the mod. Go to assets\Tilesheets in the mod's folder.

sage jasper
#

oh it does actually just have its own assets, welp this is gonna be easy then

#

thanks

hard fern
#

Thats probably the reason why mods weren't retexturing them

lucid iron
#

need to check if they are loaded to own target or editimage to something else

#

i recall minecarts being on various map tiles but dunno about this particular mod

sage jasper
hard fern
#

If it's custom minecarts then

#

Aka minecarts added by the mod

#

Then they're their own assets

#

Instead of borrowing in game asset

lucid iron
#

you need to inspect that mod's content.json then bolbthinking

#

see where they loaded the sprites to

#

but if it's just personal edit then feel free to edit the mod directly, it's fine as long as you dont redistribute

next plaza
#

(To be clear, they're not his pumpkins)

sweet sphinx
#

so many krobus, and one chicken

teal bridge
#

It'd be pretty hilarious if he had 50 pumpkins on his porch.

sweet sphinx
#

stardew mod that puts 50 pumpkins on your porch

velvet narwhal
#

so many krobus

brave fable
#

sdv posted pumpkins... for me..

#

i mean ca

velvet narwhal
ocean sailBOT
#

Log Info: SMAPI 4.1.0-beta.5 with SDV 1.6.9 'beta' build 24305 on Microsoft Windows 10 Home, with 34 C# mods and 33 content packs.
Suggested fixes: One or more mods are out of date, consider updating them

brave fable
#

that does look like a very 'beta refactoring' error

#

pathos getting one last framework to collapse before release ☀️

velvet narwhal
#

i pressed the funny 'enable all' and i've forgotten which ones are and aren't betas

#

i think all of peacefulend's stuff didn't load

next plaza
#

I don't think that's a recent change?

#

I mean, 1.6.9, yeah

velvet narwhal
#

oh wait it's just fashion sense that didn't load

next plaza
#

But I thought Pathos changed that weeks ago

brave fable
#

maybe, but peaceful sure isn't around to update it

next plaza
#

I mean they updated FS recently

velvet narwhal
#

i go grab yet again

brave fable
#

oh really? nevermind then haha

next plaza
#

Well, 4 weeks agop

#

Last active is today

teal bridge
#

There's no one version of SMAPI that's compatible with both 1.6.8 and 1.6.9, right? It's still all or nothing?

velvet narwhal
#

i have 3 smapis

#

dev 4.0.8, reg, 1.6.9 smapi SMCKekLmaoDog

next plaza
#

I just changed the requirements when compiling

#

And ignore the contenthashes.json missing warning

velvet narwhal
#

oh i have the latest fs unless you meant the git fs

teal bridge
#

So if you build it yourself it might work with both versions... though eh, I don't know if I want to do any serious work with a homebrew SMAPI build.

dim yew
#

Dumb question but there’s not a “rain” music track for events is there?

velvet narwhal
#

p sure rain turns off all bgm

dim yew
#

not in events sadly

teal bridge
#

Well, rain is the BGM.

dim yew
#

is it just called rain? Lol

teal bridge
#

Oh, I doubt that.

dim yew
#

oof

#

I’d like for rain sounds to play during an event is what I mean.

teal bridge
#

Wait, maybe it is.

ornate trellis
#

its called rain

velvet narwhal
#

SDVpufferthinkblob none bgm and then playSound ?

lucid iron
#
static void PlayRain()
{
    changeMusicTrack("rain", track_interruptable: true);
}
teal bridge
#

According to the spreadsheet, there's rain for the BGM and rainsound for the croaks and such.

#

(I got caught off guard, it's so rare for a sound to match its sound-bank name.)

#

:drumkit6:

lucid iron
#

say how do u unpack sound

brave fable
#

there's a guide on [[Modding:Audio]]

lucid iron
#

maybe i can wine it

teal bridge
#

("there are dozens of us! dozens!")

lucid iron
#

oh i can build the first one, maybe

teal bridge
#

There might actually be license issues involved. XACT is apparently a Microsoft thing, which they hilariously call cross platform, that's what the "X" in "XACT" stands for.
https://en.wikipedia.org/wiki/Cross-platform_Audio_Creation_Tool

Cross-platform Audio Creation Tool (XACT) is an audio programming library and engine released by Microsoft as part of the DirectX SDK. It is a high-level audio library for authoring/playing audio that is written to use Xaudio on the Xbox, DirectSound on Windows XP, and the new audio stack on Windows Vista and Windows 7. Xaudio is an Xbox-only AP...

lucid iron
#

wait is that what X stands for in all the XNA and related things

calm nebula
#

Oh I thought it stood for xbox

lucid iron
#

yea same

brave fable
#

surprisingly, xbox stands for cross-platform box.

teal bridge
#

And the X in Xbox X Series X stands for Xbox X.

iron ridge
brave fable
#

nono, that stands for xbox

teal bridge
#

DirectXBox.

brittle pasture
#

the X in Xbox stands for DirectX, and the X in DirectX stands for Xbox
ez

brave fable
#

classic case of circular dependencies

lucid iron
#

the tool deals with xwb but what is in FarmerSounds.xgs and Sound Bank.xsb?

teal bridge
#

Sound bank is like an index to the wave bank.

brave fable
#

yeah you won't need those

iron ridge
#

that's meant to be a b, not a v, right?

brave fable
#

what is 'that'

iron ridge
#

wavevank

brave fable
#

oh

#

lol

rain basalt
#

wabe vank

teal bridge
brave fable
#

makes me wonder what sorts of tricks you could pull by playing with the audioengine settings

#

unsurprisingly the game really doesn't dare for the most part

teal bridge
#

It does do spatial audio, or so I'm told - haven't really noticed it myself.

tender bloom
#

oops sorry for ping

lucid iron
#

i built it

tender bloom
#

I remember gnashing and wailing but it worked for me

lucid iron
#

but it only grabbed int ids

tender bloom
#

so I think I did maybe have to build the code or something

#

oh yeah all the files are just named random strings of numbers

lucid iron
#

i need to inspect the xsb for that right

#

hex editing 👻

tender bloom
#

idk I just left them as the numbers and cross-referenced the wiki

#

are there new 1.6 sounds or something?

#

I haven't tried since 1.5

lucid iron
#

no but i desire info DokkanStare

#

it's also just nice to have at hand to ref i think

calm nebula
#

If you like

tender bloom
#

the wiki has a table with filename to audio thingy name labeled

calm nebula
#

Just want info, chue, just weite a tiny little mod that plays sounds lol

tender bloom
#

are you saying that cause you made one

#

i am remembering something about jukeboxes

calm nebula
#

I did not. Peace dix

tender bloom
#

ah, easily confusable 😛

calm nebula
#

Chue could make it before I get home from work

#

Nah, peace is a good programmer

lucid iron
#

but i want to see if there is mystery unused sounds

tender bloom
#

I love how if I squint it looks like we're losing our minds

#

talking to ourselves

tender bloom
brittle pasture
#

Is Relativity MathPerson taken

tender bloom
#

don't think so

#

maximum purple time?

brittle pasture
#

ah but Im not prpl

tender bloom
#

fixable

calm nebula
velvet narwhal
#

here i was thinking atra was still the old name

calm nebula
#

Lol. It's just a dictionary lol

lucid iron
#

oh i can just do that?

#

ur smort atra

calm nebula
brittle pasture
#

unfortunately I value my skeleton general title too much to rejoin the ranks of prpl

velvet narwhal
#

Who's dumping their stats

brittle pasture
#

the last burst of treeeeeaats

uncut viper
#

i realized i had 3 minutes left and still had 30 of each

brittle pasture
#

We will not go gentle into the night

velvet narwhal
uncut viper
#

i didnt get to use them all, rip.

lucid iron
#

aw shucks i forgor about it

brittle pasture
velvet narwhal
#

Button, a suggestion was made for you to have made gravestones say junimo names

uncut viper
#

like, server mods?

velvet narwhal
#

Yeah, "Here lies Pathos/Logo etc"

brittle pasture
#

now I wonder who will win
(probably Graveyards SDVpufferwoke )

uncut viper
#

i dont think i have a good enough rapport with like any of them to feel comfortable putting their names as dead people on a gravestone lol
bit late now anyway

calm nebula
#

Yeahhhhh

velvet narwhal
#

Button still on front page last I checked

uncut viper
#

i wouldnt have been free enough to do it today anyway

lucid iron
#

shoulda opened headstone signups

uncut viper
#

too late for the contest, i mean. i think its whatever version exists now is the version thats judged

lucid iron
#

free real estate

velvet narwhal
#

Yeah I was happy to have put in the accessibility option and call it a day

#

Button just barely got all the points out SMCKekLmaoDog

dim yew
#

lmfao I missed the contest deadline by two minutes

#

this is awesome

rain basalt
dim yew
#

Emailed bouncer but.... oh well.

tender bloom
#

I forgot to send any treats or tricks

velvet narwhal
#

That's also kind of why I posted my modpage and didn't care how many updates needed

dim yew
#

I'm pretty upset actually haha

hallow prism
#

worse case, they'll judge it but you'll win no prize

#

neutral case, it stay as it is, which is already the case anway

dim yew
#

woof.

hallow prism
#

i mean, you have nothing to lose, unless it's even more frustrating this way

#

but since you decide, well

#

it may already help to have a small choice

dim yew
#

I hope that mods are gracious

hallow prism
#

"dear teacher, nexus ate my submission"

rain basalt
#

O.O can i not react to lumina 🤔

teal bridge
rancid temple
#

Pretty sure it was just a for fun interaction

uncut viper
#

and a way to spend my extra 45 points

lucid iron
#

Very sad that this channel is going back to all orange + button soon

brittle pasture
#

didnt even fall to the temptation of an early 10 points role, now that's dedication

uncut viper
#

i didnt like any of the colours

brittle pasture
#

not even prpl?

hallow prism
uncut viper
#

the purple is okay but its not my ideal purple

teal bridge
uncut viper
#

not good enough of a purple to be bought when its gonna be covered up by gold

teal bridge
uncut viper
#

it is quite nice

#

its not usually my colour but this one is nice. very bold.

teal bridge
#

I thought about going grey, but the red offered a slim chance for being confused with the developer role, and I can't resist the opportunity for a little chaos.

brittle pasture
#

hey "frankentense" whens 1.6 SMAPI for mobile plees

teal bridge
#

Six to eight weeks.

rancid temple
#

Six to eight business years

tender bloom
#

6 to 8 millennia

teal bridge
#

(Those are all very good points, but they are already implied by the six to eight weeks meme)

sweet sphinx
#

3 days? 3 months? 3 years?
3

rancid temple
#

It wouldn't be the authentic game dev experience if a bunch of people didn't try to tell you what you meant when you said something

sweet sphinx
#

I was referencing a different meme to Shadow, didn't mean to be stepping on Frankentense's toes

teal bridge
#

Not to worry, I can sew on new toes.

tender bloom
#

I got you some, now you just need a needle and thread

teal bridge
#

I was thinking contact cement.

#

Or superglue. Whatever's on hand, really.

rancid temple
#

My grandmother was a superglue kind of person

tender bloom
#

Superglue is super effective

rancid temple
#

Chop off the tip of your finger? Superglue it back on

teal bridge
#

sgtm

rancid temple
#

Got a gnarly cut, superglue will fix that too

tender bloom
#

My hot tip is that if you need less superglue on your fingers, let it dry and use a file to get it off once it’s hard

#

Of course definitely don’t touch your fingers when it’s wet

teal bridge
#

And don't rub your eyes.

tender bloom
#

My RA in college sliced his hand accidentally so I took him to the ER

#

He said they just medical superglued him

#

I got to drive his car because I was voted most responsible

cyan marsh
#

im back from trick or treating

teal bridge
brave fable
teal bridge
#

Although I'm obliged to point out that it doesn't, technically work on severed digits, only for closing up wounds.

lucid iron
#

But you are already in the game

#

I grow you every summer

tender bloom
cyan marsh
#

sooo.. i need a bit of help... particular help if anyone is available

#

I need someone who uses mods that add maps to the game

rain basalt
#

k

#

whats up lol

cyan marsh
#

are you volunteering?

teal bridge
round dock
#

Checked the strings just now, can anyone please explain to me how this works in the mail in deducting cash? "passedOut3_Billed": "@,^Someone dropped you off at the clinic last night. You'd passed out from exhaustion!^You've got to take better care of yourself and go to bed at a reasonable hour.^I've billed you {0}g to cover your medical expenses.^^-Dr. Harvey[#]From The Office Of Dr. Harvey",

rain basalt
#

yep lol i add and change maps

round dock
#

Thank you! SDVemoteheart

velvet narwhal
lucid iron
#

This string is just the mail

velvet narwhal
#

but i'll have to double check, my taquitos come first though

tender bloom
#

{0} gets replaced in code

cyan marsh
round dock
#

SDVpufferwaaah ah, thank you Avi, Chu, and Elizabeth

tender bloom
#

The passing out letters are a bit of content and a sprinkle of C# to make it all work

cyan marsh
#

oh @rain basalt, It outputs to a folder called ExtractedData in your SDV folder

tender bloom
#

So you can affect some stuff but others would be hard

rain basalt
cyan marsh
#

unsure

#

would be nice to know

rain basalt
#

hmm

cyan marsh
#

did it not work for you?

rain basalt
#

well got map list but not seeing my custom maps

cyan marsh
#

can you post it here?

rain basalt
cyan marsh
#

hmm

rain basalt
#

should be Custom_NewCellar

cyan marsh
#
        public void MapExtractor()
        {
            List<string> MapList = new List<string>();
            List<string> Filter = new List<string> { "Default", "Farm_Standard", "Farm_Beach", "Farm_Forest", "Farm_FourCorners", "Farm_Hilltop", "Farm_Riverland", "Farm_Wilderness", "Farm_MeadowlandsFarm", "BeachNightMarket", "DesertFestival", "fishingGame", "Temp" };
            foreach (var mapinfo in DataLoader.Locations(Game1.content))
            {
                MapList.Add(mapinfo.Key);
            }
            foreach (string mapFilter in Filter)
            {
                MapList.Remove(mapFilter);
            }
            string path = Path.Combine(Environment.CurrentDirectory, "ExtractedData", "MapList.txt");
            File.WriteAllLines(path, MapList);
            Monitor.Log("MapList saved!", LogLevel.Debug);

        }
``` might not in the same place?
rain basalt
#

all maps are loaded into Map folder

cyan marsh
#

I want it to detect all maps

tiny zealot
#

celestia, have you also edited Data/Locations for those map assets?

rain basalt
#

no not locations

#

but they work lol

tiny zealot
#

well that's why they aren't showing up then:
foreach (var mapinfo in DataLoader.Locations(Game1.content))

rain basalt
#

🤔

#

so shes looking at location folder and not reading maps directory

cyan marsh
#

Maps Directory wouldn't use their actual names normally

rancid temple
#

For events, the locations is what matters, not the maps

cyan marsh
#

i imagine anyways

tiny zealot
#

if you are using CP's CustomLocations (deprecated), then maybe miss coriel needs to account for that

rain basalt
#

yah i load with CP and custom locations

rancid temple
#

I believe CustomLocations does just make Data/Locations entries

cyan marsh
#

what should I look for?

tiny zealot
rancid temple
#

Did you run that command after loading a save?

rain basalt
#

but im not using custom locations for this mod lol just loading in a map for my buildings to reference

cyan marsh
#

yep

uncut viper
#

if those are maps intended for constructable building interiors, they shouldnt be Locations

rancid temple
#

Oh, weren't building interiors intentionally excluded?

brittle pasture
#

It's a building interior?

#

yes they are earlier

rain basalt
rancid temple
#

I don't think you can put events in building interiors even if you wanted to lol

brittle pasture
#

the tool's for an npc maker so we only wanted non-instanced, real map locations

rancid temple
#

At least not those types of buildings

cyan marsh
rain basalt
#

lol

uncut viper
#

i wonder if an event would work if you somehow knew ahead of time what the exact unique instanced interior ID would be

rancid temple
#

Maybe if you were distributing the save file lol

#

With the interior already generated

cyan marsh
brave fable
#

i'm sure there's a token for location name including unique id. just gotta do some weird bullshit to load an event

rain basalt
#

sec let me see if my ranch mod loaded the one side map

uncut viper
#

i dont know if the game specifically checks if you're inside an instanced interior

brave fable
#

you, too, can have a wedding in your coop

cyan marsh
#

so.. is this issue my code or what

brittle pasture
#

no, it's just celestia tested with a building interior mod, which shouldnt be included (and didnt)

rain basalt
#

and of corse my ranch map is broken again lol >.>

sweet sphinx
cyan marsh
#

so thus.. need someone that uses something like SVE or something

rain basalt
#

yah sorry im mostly working on building stuff right now

brave fable
#

no, i'm not doing anything lol. just posting nonsense

uncut viper
#

the code actually only seems to check the GameLocation's name, not even its NameOrUniqueName. would you even need the unique id then or can you just load Data/Events/Coop

cyan marsh
#

would be interesting

calm nebula
#

You can indeed have an event in a coop

uncut viper
#

well, i guess you technically dont want to exclude those, then

brittle pasture
#

but then again do we really want to give ppl the power to

cyan marsh
calm nebula
#

Yes

#

Always

uncut viper
#

i can think of some cute event ideas that take place in buildings

#

like another Haley cow event in a barn

#

so i think it should extend to custom NPCs

brittle pasture
#

the issue is that events would be weird the moment the user uses an interior change mod

#

but that's about my only objection

uncut viper
#

if things were limited based on the possibility of things being weird with different mod interactions, no mods would exist

calm nebula
#

Sorry, bootton

#

This mod randomly assigns every texture to every other texture

brittle pasture
#

anyway if you want interior maps you can iterate over Data/Buildings and get the IndoorMap field

calm nebula
#

It also throws random errors in log if any other mods are installed

uncut viper
#

my mods do that last part anyway if i put enough prefixes in

brittle pasture
#

that should cover it? can events warp to a standalone map?

cyan marsh
#

welp so much for this right now DX

calm nebula
#

Aren't y'all glad I'm retired from modding

velvet narwhal
#

wdym standalone map?

velvet narwhal
brittle pasture
#

temp maps?
though since you can't start events in temp maps I'm not sure if finding them are necessary
(actual event makers pls feel free to silence correct me)

velvet narwhal
#

i have never tried to start an event in a temp map because, well, i don't know how i'd even get to it in game

brittle pasture
#

yeah exactly, baring C# shenanigans

velvet narwhal
#

that's still some form of, you're somewhere -> change to temp though? unless it's a forced ondaystart warp

brittle pasture
cyan marsh
#

I am just trying to generate a list of event compatible maps

uncut viper
#

thats the point, coops and things ARE event compatible

velvet narwhal
#

why not iterate everything loaded into data/events then

cyan marsh
brittle pasture
#

yeah, though ppl may be making their own maps with their NPCs and didn't put events in there

uncut viper
#

also, how do you iterate over things in Data/Events

velvet narwhal
#

you still ahve to create a blank.json though for a brand new location?

#

hmmmmm checking the content pipeline? but idk that's me pulling it out of my bum

uncut viper
#

custom maps and maps that dont have events by default would be loaded... as Data/Events/MapName

#

but loading Data/Events is just nothing

tiny zealot
#

aaaaaaaaaaaaaaaaaaaaaa
i just spent an insane amount of time on what i thought were sync problems or other weird shit and it turns out i'm just a dumdum and i used the wrong player's id for one of the steps so it was always trying to find the wrong instance

velvet narwhal
#

some locations might not've bothered to load a blank there though, so would there be a way to just compare both

brittle pasture
#

technically you can, with SMAPI reflection crimes™

uncut viper
#

it doesnt matter if they load a blank if content patcher is loading it

#

it has to exist as an asset to be used

cyan marsh
#

The scope of this is to just create a text file with all the locations so I can use it to populate my NPC Creator

tiny zealot
#

SDVpufferlurk reflection crimes?

uncut viper
#

can you elaborate on what smapi reflection crimes can have you finding everything under Data/Events/*

brittle pasture
velvet narwhal
#

oh i thought you were trying to add in some kind of event creator

cyan marsh
#

such as what if someone wants to make a NPC that uses SVE locations...

uncut viper
#

if someone has a custom map with an event, it will be loaded and caught by DataLoader.Locations and DataLoader.Buildings. if its not in there, its because they have it conditionally patched, but in that case there's not really anything you can do except watch in the AssetRequested event for it

#

and refresh your list as needed

#

but people should not be conditionally loading their locations anyway

#

probably not their events either since they can just precondition them

brittle pasture
#

ah yeah forgot they have to be loaded first

cyan marsh
#

I still want to have solid proof it works, but I really don't want to go through the tedium of installing SVE or something

uncut viper
#

the locations dictionary is still just a dictionary of every location though, they will all at least be listed in there even if their actual maps are not loaded

brittle pasture
#

finally at my desk, going to test with my mod that adds a couple extra locations

safe mortar
cyan marsh
velvet narwhal
brittle pasture
#

no other mods but mine that adds the last 2 entries

cyan marsh
#

is that the valid name?

#

i was expecting CUSTOM_<mapname>

brittle pasture
#

I think that's for maps using the old CustomLocations route?

cyan marsh
#

i see

brittle pasture
#

Mine just uses the 1.6 system

cyan marsh
#

i never been good at the maps stuff

#

I should look for the old stuff too right?

uncut viper
#

Content Patcher handles the old stuff by converting it to the new stuff

tiny zealot
calm nebula
#

My new location is a zero width space

velvet narwhal
safe mortar
#

oh yeah i started before 1.6 that could be causing some issues

velvet narwhal
#

that's fine for now, but if you're using the old dispositions, format 2.3.0 will get mad at you

brave fable
#

oh do we not prefix stuff with Custom_ now

#

is it all modid

velvet narwhal
#

actually i don't think 2.3.0 even recognizes NPCDispositions

lucid iron
#

yea since we can do that

#

now u can enforce your branding

safe mortar
velvet narwhal
#

!npc tia has the updated one

ocean sailBOT
#
Creating a Custom NPC

Keep in mind that making NPCs is a complex process that requires learning many different aspects of Stardew modding.
Here are a few links that can help get you started on all that you need to know:

brittle pasture
#

ah the olden days, when my knees didn't hurt, and when SMAPI complained if your maps didn't start with Custom_

safe mortar
#

i remember much chaos but i'm super ADHD so that's kinda my everyday vibe

cyan marsh
#

I hope i am overthinking things

velvet narwhal
#

i think once you've sorted out your data/characters, it'll make the other things stop erroring

brave fable
#

i have many things to rename 😌

safe mortar
# ocean sail

oh yes! i just saw this posted in prior chat and started looking at it 😄

cyan marsh
#

Next, I need to create an NPC roster...

velvet narwhal
#

as it is right now, you're fine to load your dialogue/marriagedialogue like that, but just remember that you cannot use i18n tokens

safe mortar
tiny zealot
#

now that i keep having to reload two game instances for multiplayer nonsense, i am thinking about a mod that reduces the steam api connection timeout down to 1 second

#

(or skips it entirely and returns false or w/e)

lucid iron
#

does hot reload work with 2 instances

tiny zealot
#

maybe, but some of the stuff i'm debugging is like, unrecoverable crashes so i have to restart anyway

velvet narwhal
#

does hot reload work in multiplayer? SDVpuffersweats

cyan marsh
#

hmm.. how to find a list of the npcs in game mcthink

brave fable
#

export data/characters surely

uncut viper
#

hot reload will change the game of the player thats running through the IDE but not the other one

tiny zealot
lucid iron
#

that seems very explody

velvet narwhal
#

(1) fear

lucid iron
#

but what if you do split screen

tiny zealot
#

if the other one doesn't change you will get weird shit, yeah

brittle pasture
velvet narwhal
#

i couldn't even save when i used hot reload

uncut viper
#

do you have any idea how fucking annoying it was to test my Rock Paper Scissors mod since it required 4 players

brittle pasture
#

everything you ever need is in DataLoader

safe mortar
tiny zealot
#

i don't actually know how to play split screen at all. it is probably broken for this and i would prefer not to think about it

lucid iron
#

im sure button has 3 willing friends

calm nebula
brittle pasture
#

(I did not my test my battle arena mod with MP, should I be nervous)

lucid iron
#

naaaah

uncut viper
#

bold to admit that before judging

calm nebula
lucid iron
#

if they crash its lore friendly (the void chiqns gottem)

cyan marsh
velvet narwhal
brittle pasture
#

(like worst case scenario the farmhands get stranded in the void with no way to return)

#

(eh I;m sure it's fine)

lucid iron
#

if the void is instanced to player then u dont have to worry about this ever

velvet narwhal
#

oh time to open up the void chickens in split screen

tiny zealot
#

more J-name NPCs? SDVkrobusnaughty

velvet narwhal
brittle pasture
tiny zealot
#

it would just stay Jo. why mess with perfection

lucid iron
#

hm i think 1.6.9 might have fixed mystery donate box problem?

velvet narwhal
#

the double entendre of two special orders at the same spot?

lucid iron
#

i could turn in 1 special order and then the box will be fore other special order once i reopen

safe mortar
lucid iron
#

jojo

safe mortar
#

saw her live at a gymnastics thing before she was famous. forgot all about it until now lmao

lucid iron
#

why do we have SDVpufferdio

safe mortar
#

JoJo™️

velvet narwhal
#

why not?

lucid iron
#

terror

safe mortar
ornate trellis
#

you thought it was puffer but it was dio all along!

brave fable
#

omg we lost puffersenpai

velvet narwhal
#

i pray my entry gets in

ornate trellis
brittle pasture
cyan marsh
#

😮 with this power, I could probably divide the npc between marriagable and not

ornate trellis
brittle pasture
#

void here smuggling in illegal puffers

velvet narwhal
#

void took all the puffs before they got banished to the shadow realm

ornate trellis
#

excuse you i printed them myself at home, totally legally

cyan marsh
#

first... lets check if i can make a list

ornate trellis
#

and one time i even got one into the official list

velvet narwhal
#

that's pretty good ngl

ornate trellis
#

too bad handsome and smug were declined lmao

#

the cheer one exists because someone wished there was one in the event chat and i was like ok im bored why not

cyan marsh
#

hmmm

brave fable
ornate trellis
#

beautiful

cyan marsh
sweet sphinx
#

ngl, once I figure out NPCs, I'll probably do:

  1. more of Krobus's people npcs
  2. more dwarf npcs
    and if I can figure out maps too
  3. zuyawn(the species my kin/character is) expansion mod
ornate trellis
#

ill stop derailing and go back to sorting through my closet, ahem aSDVpufferleaves

velvet narwhal
#

godspeed expansion dreamer

cyan marsh
#
npclist.Add(npc.Key, npc.Value.DisplayName.ToString());``` any thoughts on refactoring?
lucid iron
#

i thought DisplayName is a string

cyan marsh
#

it comes out as the result above

brittle pasture
#

yeah it's a tokenizable string

cyan marsh
#

not sure how that works

#

never had to do that

tiny zealot
#

tokenizable strings are new in 1.6. call Game1.parseText on them

cyan marsh
#

ok.. since i've never used that i am unsure how it comes out

brittle pasture
#

Game1.parseText(npc.Value.DisplayName) should work

cyan marsh
#

ah

brave fable
#

the other function of parsetext is adding line breaks to text SDVdemetriums

cyan marsh
#

guess what it did xD

brittle pasture
#

hang on it might be possible I gave you the wrong function

brave fable
#

you want TokenParser.ParseText()

#

not Game1.parseText

#

lol

brittle pasture
#

yeah
puts on cone of shame

cyan marsh
#

would this pick up NPCs that use NPCDisposition?

velvet narwhal
brittle pasture
#

I think the conversion's done by SMAPI at that point so yeah

sweet sphinx
#

will it contain more shadowpeople?

velvet narwhal
#

a lot more, considering that's the whole storybeat SMCKekLmaoDog

sweet sphinx
#

niiiice

#

maybe smn else can pipe up about their dwarf expansion mod so I can immediately move onto the zuyawn one X3

tiny zealot
#

i know there is one, or maybe two

velvet narwhal
#

i don't know about a full on one but there is "the littlest smallnu"? i don't remember what it's called

#

it's usually one or two npcs though, right?

tiny zealot
#

last smoluanu, and i think there's a separate dwarf expansion but i don't know how much content either one has

velvet narwhal
#

mine encompasses both but uh, that is a "this thing is probably not releasing until sept 2025"

sweet sphinx
#

fair

#

anything rpg is bound to take a while

tiny zealot
#

i am always talking about mice but no expansion in the works about it (Lacey's whole deal sort of precludes it, oops lol)

velvet narwhal
#

i make ichor make all the mouse npcs

#

a fair trade

sweet sphinx
#

my zujawn one is mainly just a new place to visit, some people to talk too, maybe some exotic crops and animals(can you buy animals from places other than Marnie's?) you can get

tiny zealot
#

i have some notes about an expansion i would like to make (aren't we all expansion dreamers?), but i have not done one lick of actual work on it. only dreams

cyan marsh
velvet narwhal
#

c'mon ichor, join the hell fun

brave fable
#

join me in expansion purgatory. low expectations and no deadlines ☀️

cyan marsh
#

oopsie code.. i fixed

#

but yeah.. sorted them

tiny zealot
#

one day! i'm in hell enough on this "small" mod i started as kind of a whim

cyan marsh
#

I will work on other things later.. for now, this is functional but i need to get NPC Creator going

lucid iron
#

what r u gonna do about translations

tiny zealot
#

basic shit seems to be working now, so now i have to staple on the extra features and the progression

lucid iron
#

will it just be up to person using it to obtain their own list

sweet sphinx
cyan marsh
#

yep.. it's for NPC Creator customization without a bunch of guesswork

brave fable
#

i feel like for an NPC creator you wouldn't want to use DisplayName anyway, you'd only want internals right?

velvet narwhal
lucid iron
#

expansion isnt really a well defined thing anyways

brave fable
#

well yes to make one, but you're compiling a list of all other npcs

#

if there's 3 with the displayname Jeff and you don't know if it's MyMod.Jeff or CoolHouse.Jeff though

#

which are you going to reference, Jeff, Jeff, or Jeff

velvet narwhal
#

Jef, Jeff, Gif

cyan marsh
#

if, for some reason, someone's custom NPC uses a displayname different from their internal name

sweet sphinx
tiny zealot
#

definitely CoolHouse.Jeff. all the other jeffs can't compete

cyan marsh
#

like, the item codes.. i don't need the display name perse.. but I use that for ease of use.. it's easier to select by item name than Item ID

sweet sphinx
lucid iron
#

i think ppl usually consider expansion a mod that adds some extra area and several npcs, and associated items and such

cyan marsh
#

thus.. when you select the display name, the code will reference their internal name

velvet narwhal
#

"Hello, Aviroen_Mothman, how are you today?" SMCKekLmaoDog

brave fable
#

i just feel like in the development tools you should always use internal names

lucid iron
#

none of these inherently need C# but ppl do end up with random C# features they wanted

cyan marsh
#

NPC Creator uses internals..

#

it just uses the display name for selection..

velvet narwhal
#

an expansion could solely be cooking as well, it's a broad term to just be "large amount of content" tbh

brittle pasture
#

in a brief moment of hubris and weakness I almost added "Expansion" to my contest mod name

next plaza
#

MMR is kinda an expansion I guess with how much content I want to do for it

calm nebula
#

just expand every spritesheet by 16px

tiny zealot
next plaza
brave fable
#

technically, wide pam counts as an expansion

cyan marsh
#

as an example https://www.nexusmods.com/stardewvalley/mods/2898 if someone wanted to do something with this mod, they wouldn't realize her internal name is Wizard as she is a replacer.. they would be able to select her by her display name and NPC creator will add the internal name where applicable

next plaza
cyan marsh
#

(sorry my cat decided to lay on my keyboard)

calm nebula
next plaza
#

wat

#

You made a mod???? You're not retired anymore?1?!

velvet narwhal
#

we're getting shovel 2.0, folks

brittle pasture
#

I heard atra even agreed to be Aquarium's maintainer for life

tiny zealot
#

they pulled atra out of retirement for one last mission (fixing Aquarium)

brave fable
#

i can't wait for Spade

next plaza
#

Maybe we can convince atra to do an expansion mod too

#

something something knitting mod

cyan marsh
#

what is easier to understand Cave Carrot or 78

velvet narwhal
#

whole new machine, with a custom ui that lets you knit anything into furniture/clothes

brittle pasture
next plaza
#

Unless you plan on parsing and reprocessing dialogue for instance, they'd have to do stuff like [78] for giving items in dialogue anyways

cyan marsh
#

mod makers who have trouble remembering things... ease of access is paramount

#

i can get past that too

#

a simple add item button that asks you to select items.. and when you click ok, it will substitute your selections with their IDs

tiny zealot
#

ease of use is one thing, but i recommend against hiding details like this from users. it does them a disservice

next plaza
#

I mean, I get it, but I feel like having modders understand the underlying concepts is really important

calm nebula
#

Differences, I see none

velvet narwhal
#

long term ramifications, i believe numerical is better, as much as i believe 'ease of access' is good and all, having them come 'round because they want to add in something to the npc but your creator doesn't cover it puts them 5 steps behind than they would've reading docs

next plaza
#

I could see a "item name to item ID" separate window could be useful

cyan marsh
#

ie. A personal resource set to their specific game

next plaza
#

What do you do if two items have the same display name

#

(Very easy thing to do)

brave fable
#

are u going to include a button that notifies the user of the correct stone item 🪨

brittle pasture
#

(Case in point: the 4 Butters)

cyan marsh
#

not sure.. since I haven't written it yet

next plaza
cyan marsh
#

sorry cat is making it hard to type xD

tiny zealot
calm nebula
brittle pasture
#

ah yes forgor about eggs

next plaza
#

🥚

velvet narwhal
#

this is why the void chickens spited you

cyan marsh
#

not sure.. didn't realize butter had more than one iteration now

calm nebula
#

It is required for every expansion mod

brittle pasture
#

4 butters, 3 olive oils, 4 basils

calm nebula
#

You must have your own butter

cyan marsh
#

the old NPC creator was simplistic.. so I have new things to figure

next plaza
#

It doesn't in vanilla

velvet narwhal
#

to add in a butter? shit, guess i gotta have void butter SDVpufferpensive

next plaza
#

But if you're taking mods into account all bets are off (and yeah, vanilla eggs)

tiny zealot
#

adding some kind of butter is on my expansion's list under "jokes"

cyan marsh
#

i can make the list as `(name - ID) easily

#

I'm off for now Kat has decided that I don't need to chat anymore

languid aurora
cyan marsh
clever sinew
#

good all hallows' eve to you all

#

I have a potentially obvious question

velvet narwhal
#

what would be an obvious question?

clever sinew
#

I am trying to make a recipe mod with new recipes using new objects

#

I've been trying to study other mods to try to puzzle out what this should look like

#

I have noticed that some folks' content.json's in the first subfolder seem to just be telling smapi/CP to include the new recipes, and then in the second subfolder are doing .json's for each individual recipe?

#

The question is, do I still need to include that first content.json if I don't have a config to not include?? Or am I completely misunderstanding what's happening here

lucid mulch
#

the only thing that actually matters is EditData patches, in this case for Data/Objects to add the thing, and Data/CraftingRecipes to add the recipe

uncut viper
#

you can separate things out into different .json files for organizational purposes, but they function the same. you do still need the original content.json though

velvet narwhal
#

content.json is how your mod gets read in general, you can put everything into the content.json if you so wished

uncut viper
#

a content.json in the top-most folder of your mod is required in all cases for a content patcher mod

lucid mulch
#

all content patcher packs require content.json as its the entry point

clever sinew
#

Okay, that makes sense

uncut viper
#

this will explain the Include stuff you were seeing

lucid mulch
#

you can have everything in content.json if you want, splitting stuff out via Include is purely for organizational benefit and is not required for any functionality

clever sinew
#

So all mods have your manifest and content in the first subfolder and then further on is just different organizational styles

uncut viper
#

correct

clever sinew
#

ah okay thank you for the link and advice!

#

that also explains why all these mods have different structures lol

velvet narwhal
#

some people like to keep it as organized as possible, others will blow caution to the wind and put everything into content.json

#

if you can find it, and as long as it works it does not matter SMCKekLmaoDog

lucid iron
#

use a editor that does validation and indentation

lucid mulch
#

some mod structures might also just be a trait of their history if they were previously using JA or other things, and when combining everything for 1.6 kept those existing hard walls

lucid iron
#

(please)

clever sinew
#

I downloaded notepad++

lucid iron
#

turn on the json extension

velvet narwhal
uncut viper
#

i dont know when to break the news to chu that i dont use any sort of validation in my notepad++ usage. i dont even use more than two syntax colours

lucid mulch
#

(you can wrap links with <> to prevent the embed from ever happening in the first place)

clever sinew
velvet narwhal
#

i had a taquito in my hand, couldn't paste in the <> with my mouse

#

can't go through graveyards in 1.6.9, guess i'll stick it in my 1.6.8 folder

uncut viper
#

wait, what

#

do you mean my mod

velvet narwhal
#

yes

uncut viper
#

is it broken in 1.6.9,

velvet narwhal
ocean sailBOT
#

Log Info: SMAPI 4.1.0-beta.5 with SDV 1.6.9 'beta' build 24305 on Microsoft Windows 10 Home, with 34 C# mods and 34 content packs.
Suggested fixes: One or more mods are out of date, consider updating them

uncut viper
#

well, shit

velvet narwhal
#

don't look at me and my messy folder structure, i clicked "enable all" to see the red wall of flames

#
[19:37:33 TRACE SMAPI]       Loading assembly 'Pastel.dll'...
[19:37:33 TRACE SMAPI]       Detected game patcher in assembly Graveyards.dll.
[19:37:33 TRACE SMAPI]       Broken code in Graveyards.dll: reference to StardewValley.Game1.currentLightSources (field returns Dictionary`2, not HashSet`1).
[19:37:33 TRACE SMAPI]       Loading assembly 'Graveyards.dll'...```
uncut viper
#

i dunno what im even using thats changing

#

wha..

brittle pasture
#

light strikes again

lucid iron
#

maybe u just need to build it

uncut viper
#

i dont remember doing anything with light at all

velvet narwhal
#

SDVpufferthinkblob is my 1.6.9 borked

#

refreshes it

lucid iron
#

why is it NetEvent0 bolbpopcornhat

brittle pasture
#

FWIW my mod is also broken and needs a 1.6.9 rebuild even though it does nothing with lights, and the worst it does is a couple Harmony postfixes on functions that are identical in 1.6.9 (EDIT: which on second thought may not be that identical)

uncut viper
#

oh my god i do do something with light

#

Game1.currentLightSources.Clear();

sweet sphinx
#

I also wanna make a mod about potion-making/"alchemy"

uncut viper
#

thats literally it

#

to get rid of the light from the torch on the wall by the ladder

velvet narwhal
#

Game1.currentLightSources = new(); zappy fingers

uncut viper
#

pretty sure that still wouldve broken

velvet narwhal
#

i go back and quote chu to put into my list of quotes

uncut viper
#

i do likely just need to rebuilt it bc im pretty sure Clear() exists on both hashsets and dictionaries

#

just needs to be recompiled

#

im just gonna hope the mods judge it on 1.6.8

velvet narwhal
#

you can preface that in the description

uncut viper
#

i will do that too but, if theyre strict about not changing the mod after the contest closes, they wont be able to download a 1.6.9 version

velvet narwhal
#

i don't know if they've started/when/what they're looking at, but yeah i'd probably just drop a "please look at my mod with the 1.6.8 lens"

uncut viper
#

and i dont think they'll be able to downgrade once 1.6.9 actually comes out

brittle pasture
#

tbh I'm almost 98% sure they'll judge 1.6.8 and only uses 1.6.9 if specifically requested

#

like chu's trinker thing

velvet narwhal
#

i can throw a bouncer question if you'd like

uncut viper
#

i wasnt sure what they would be juidging first (art, food, writing, etc) since they said the results would be in about a week

#

which will be after 1.6.9 drops

#

so if they did mods last, theyd be judged after 1.6.9 released

velvet narwhal
#

(i sent in a question)

uncut viper
#

i need a pufferORZ emote

lucid mulch
#

its possible via steam console, depotdownloader and others to downgrade an install back to 1.6.8, or the judges can simply not update their steam install

velvet narwhal
#

sorry i didn't tell you earlier, i was out and i didn't even get to my mod list until now SDVpufferpensive

uncut viper
#

its hours past the deadline anyway so it wouldnta mattered even if you did tell me earlier, so dont sweat it

lucid iron
#

i think they r testing ur mod on 1.6.8 anyways

velvet narwhal
#

i doubt anything is broken for mine in 1.6.8 but it doesn't hurt for me to go and check

sweet sphinx
#

I am very s l o w l y working through the last half of recipe iterations for the GPF mod

velvet narwhal
#

ah yeah mothman is fine, but god i forgot verbose smapi is on

velvet narwhal
#

SDVpufferthumbsup so just specify "only 1.6.8 please"

uncut viper
#

guess that'll have to do

tawny axle
#

Hey What channel do I type in, if I want to ask if someone can do my art work for my custom NPC i'm maikingfor my mod

uncut viper
#

i had only considered making a mod in 1.6.9 that wouldnt work in 1.6.8 when i started, i forgot about the opposite case when testing

brittle pasture
#

!commissions

ocean sailBOT
uncut viper
#

!commissions

ocean sailBOT
tiny zealot
velvet narwhal
#

claire that is not sleeping, unless you're planning to fix your god awful sleep schedule

round dock
#

You’d wanna commission an artist for that, the link shows who may take comms

uncut viper
round dock
#

(it is 11am, i eep, no more lurking)

velvet narwhal
tiny zealot
#

mother 3

uncut viper
#

noted

sweet sphinx
#

I am sharing that no-context into my main server

round dock
velvet narwhal
#

it's what we all felt during this event, i feel

brittle pasture
#

today will be the day I go to bed at 12AM! aaand I stayed up to chat until 2 again

velvet narwhal
#

t'was a good event, but with 1.6.9 looming over us it also had to be something in the back of the mind cause it was like, "do we also need to make it compatible with 1.6.9? but some things are broken in 1.6.9"

tiny zealot
#

i like that explanation for me not doing the mod contest better than "lazy and devoid of ideas"

brave fable
#

'something looming' can be the next mod contest prompt 😌

velvet narwhal
#

"spacecore serialization broken in 1.6.9, i'm not gonna do the modding-contest, no i will not build spacecore from source"

uncut viper
#

part of me a little bit wishes i did not care about the mod contest bc it kind of torpedoed, sank, scavenged, and melted down for scrap my motivation to work on my museum framework

#

all the momentum i had with it has been lost completely

round dock
#

today, i had an idea but i was devoid of execution and will. aSDVpufferleaves

velvet narwhal
#

something will spur you back into it, probably

round dock
#

avi has to hear my wails of i cri and then finally going nope

velvet narwhal
#

claire trying to guilt trip me into making a passoutcost postfix

lucid iron
#

oh yea did u find the location context claire

#

i got distracted earlier

brittle pasture
round dock
#

i did until i found out i need to c# which SDVdemetriums

lucid iron
#

i dont think u do

uncut viper
#

i would be happy just gettin an honourable mention tbh. babys first modjam

velvet narwhal
#

(passoutcost is an int, set to 0 or -1, i don't think claire can make it a 50% cost)

lucid iron
#

Data/LocationContexts.json

velvet narwhal
#
if (max_passout_cost == -1)
{
                max_passout_cost = LocationContexts.Default.MaxPassOutCost;
}
int moneyToTake = Math.Min(max_passout_cost, who.Money / 10);```
uncut viper
#

passoutcost is not only -1 or 0, -1 just means its unlimited

round dock
lucid iron
#

i thought the idea was to make it free for harvey

velvet narwhal
#

(it's only 8pm for me anyway can't guilt trip me i won't sleep until 2am)

lucid iron
#

but yea -1 just means use default here, u can put 500 in the FoundByHarvey entry

teal bridge
round dock
uncut viper
#

unfortunately i do not know what Star Control is, i was just thinking of the ORZ emoticon

round dock
#

hence, my mod idea shall be politely buried under button’s graves for now

velvet narwhal
#

aka whenever you're done with pom flowers

teal bridge
#

That's a shame. Ah well.

lucid iron
#

harvey takes 10g

#

to keep the books happen

round dock
velvet narwhal
#

i am now off to actually experience everyone's modjam entry

round dock
teal bridge
#

(For the record, the Orz are one of the coolest alien designs I've ever seen in a sci-fi game)

lucid iron
#

also i remembered what the proposed impl was

#

you should add a new PassOutMailData entry in front of all existing ones

#

conditioned on marriage to harvey

#

with separate mail key than the normal

#

and make it cost 0

velvet narwhal
#

oh i already threw a copy-paste at claire for one i already had SMCKekLmaoDog

#

if it's done this way though, i'm told it doesn't have compatibility with that one custom passout user-based mod

uncut viper
#

i thought the problem was the 0g still showing up

brittle pasture
#

just throw in (PS. I have to use this standard letter format, but rest assured you won't be charged!)

#

like when Pierre sends you his rebates

velvet narwhal
#

just do what i do, make a scolding letter

uncut viper
#

could also just blame it on insurance purposes, needing to send you a bill but not necessarily an expensive one

velvet narwhal
#

"If you're trying to keep me on my toes, I'll have you know I passed my ABMS with flying colors! So please do take care of yourself!"

#

oh that's american board of medical specialties, make the equivalent for phillipines SMCKekLmaoDog

round dock
lucid iron
#

say did u try using the billed not billed part

#

"passedOut3_" + ((num > 0) ? "Billed" : "NotBilled")