#making-mods-general

1 messages · Page 84 of 1

lucid iron
#

i have spacecore 1.26 from oct 10

brave fable
#

is the upcoming beta build out yet tho

next plaza
#

It is not

#

Oh, it was as of 3 minutes ago

lucid iron
#

oh ok i saw update though

brave fable
#

thank you for your preemptive testing choop

lucid iron
#

[SMAPI] SMAPI 4.1.0-beta.5 with Stardew Valley 1.6.9 'beta' build 24303 on Unix 6.11.5.1

#

is that the latest

next plaza
#

24304 is the new one

velvet narwhal
#

oh i swung my steam back to 1.6.8

next plaza
#

Meanwhile, me, doing mod development in 1.6.4

lucid iron
#

i'll try again whenever steam deem me worthy of 24304

calm nebula
#

can't you get a diff

#

like, wouldn't it be easier to just look at the diff or something

next plaza
#

I did look at the commit diff

#

But some things were done in a way I'm not 100% sure that it won't break (especially since I don't recall the SpaceCore implementation of the top of my head since I wrote it ages ago)

#

And I think one of the patches is a transpiler, which can always make things a little more iffy when refactoring is concerned

calm nebula
#

(ah, you have found the bizzare)

lucid iron
#

i also noticed makeTemporarySpriteJuicier next to that

#

juicier...

lucid iron
# next plaza Oh, it was as of 3 minutes ago

unfortunate (SMAPI 4.1.0-beta.5 with Stardew Valley 1.6.9 'beta' build 24304 on Unix 6.11.5.1)

[SpaceCore] Failed to apply 'SpaceCore.Patches.SaveGamePatcher' patcher; some features may not work correctly. Technical details:
System.InvalidOperationException: Can't find method StardewValley.SaveGame.GetSerializer to patch.
   at SpaceCore.Patches.SaveGamePatcher.Apply(Harmony harmony, IMonitor monitor) in C:\Users\space\Programming\StardewValley\StardewValleyMods\SpaceCore\Patches\SaveGamePatcher.cs:line 49
   at Spacechase.Shared.Patching.HarmonyPatcher.Apply(Mod mod, IPatcher[] patchers) in C:\Users\space\Programming\StardewValley\StardewValleyMods\SpaceSharedPatching\HarmonyPatcher.cs:line 21
next plaza
#

@ Pathoschild 😠

velvet narwhal
#

he really did kick the hornet's nest

fervent hull
#

ok im back

#

I gave up and downloaded Hope's Character Mod and am working on editing some of the outfits there

#

I'm editing the .png of the shirts sprite sheet file. there are also a .xmb and a .yaml of the same name

velvet narwhal
#

.xnb is a nono

fervent hull
#

i haven't touched either

lucid iron
#

is it too late to sneak mod type save serializer into vanilla

fervent hull
#

if i just replace the png with my edit will it work with the one I made?

calm nebula
#

Ignoee

fervent hull
#

so she does nothing

velvet narwhal
#

i don't know what you settled on, did you want an item in every single possible thing for the farmer?

fervent hull
#

just starting with a shirt

velvet narwhal
fervent hull
#

ta daaa

lucid iron
#

you do not have to edit the same sprite as vanilla

#

1.6 let you load your own spritesheet

velvet narwhal
#

@uncut viper look, you're on the front page!

fervent hull
#

i'm an absolute beginner and making my own will make my head explode rn

lucid iron
#

i recommend that you do so

velvet narwhal
#

it's actually harder to replace vanilla than it is your own spritesheet

fervent hull
#

aaaaaaaa

lucid iron
#

simply crop the image down to just your shirt

fervent hull
#

oh and just put that in the shirts file?

#

idk how this works

velvet narwhal
#

putting anything into your content(unpacked) folder will do nothing to the game

fervent hull
#

ah

lucid iron
#

do you know about content patcher

fervent hull
#

vaguely

fervent hull
#

i'm just trying to retexture one shirt from the existing set atp

uncut viper
fervent hull
#

it is very late and am tired

velvet narwhal
#

is good to have a good sleep and come back to it if you've never looked at json

lucid iron
#

i need a mod that stops hoedirt under giant crop from unhoeing

brittle pasture
#

as a biased user this mod solves every problem with giant crops forever

velvet narwhal
#

oh it's by khloe i can endorse that

#

(definitely not a secondary biased user)

lucid iron
#

i am adding a new scythe enchantment

#

to let you harvest giant crops

lusty basalt
#

So once stardew valley 1.6 drops on mobile, how long will it usually take for smapi to support the version?

lucid iron
#

so that cornucopia watermelon go zoom

lucid iron
velvet narwhal
lusty basalt
lucid iron
#

would you like to become the android smapi dev?

lusty basalt
#

Hell nah

lucid iron
#

post's open

velvet narwhal
#

then i guess you're gonna wait 5evr

sweet sphinx
#

stardew megalophobia

brittle pasture
lucid iron
#

well its a scythe so

#

it'll harvest both normal and big crop

#

im attempting to give it a bigger range it's not going too great

sweet sphinx
#

5,000 range

#

vs making a whole new npc, how hard would it be to resprite and redialog every* vanilla npc?

velvet narwhal
#

longer than creating an npc with 2 dialogue lines

hard fern
#

Yep

#

Ngl, making an npc mod is just easier

calm nebula
#

why is it just the border????

#

weird

velvet narwhal
#

you can make an npc that depends solely on vanilla dialogue, not write a lick of it, and have it published in under 5 hours if you're fast at it

calm nebula
#

why is it like that, an Atra asks, once again

sweet sphinx
#

I had an idea to turn stardew valley into Transformers

calm nebula
#

why is it not a loop

lucid iron
#

what if i patch that and make it the area

#

LilyDerp do u think there r mods dependent on the fact it is doing a border

tender bloom
#

Is it used in vanilla?

velvet narwhal
reef cosmos
ocean sailBOT
#

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

velvet narwhal
#

what's your edit looking like?

tender bloom
#

What’s at 62,10

reef cosmos
#

It's been a while since I test ran it, but I mostly just added lighting to the map and audio

reef cosmos
tender bloom
#

Forage?

lucid iron
#

is it json assets related yggy

reef cosmos
#

it's just a grass tile

#

oops my mouse didn't highlight it

reef cosmos
velvet narwhal
#

well this is also not isolated, so i don't really know if it's you or if it's any of the mods you have

lucid iron
#

you don't seem to have json asset mods anyways just get rid of it and see

reef cosmos
#

I'll try moving all my mods out

#

oh wait

velvet narwhal
#

looks like you're doing a farm map though? is it because somewhere the pathfinding couldn't find the farmhouse?
the farmhouse usually sits on uhhhhhhhh 64/15

reef cosmos
#

I think I realized what it is

#

unless I'm tripping but, I'm using the meadowlands farm map

hard fern
#

I know maps that change the location of the farmhouse, maybe they're doing something different

reef cosmos
#

I think the game is trying to place the coop directly on top of that tile

hard fern
#

O

velvet narwhal
#

well that'll do it

reef cosmos
#

which had a path on it

#

rofl

#

what a stupid bug dude I've been tearing my hair out over this for the last hour

vernal crest
#

I downloaded your mod and had a look. Your event is getting in game - it doesn't work properly because it's written incorrectly, but I can play it. Have you been trying the command debug ebi HalfAlive.SpiritFieldsContentPack_82345679?

crystal tiger
#

is there a mod that makes it easy to spawn entities for testing? Im respriting some modded enemies and wanna test them out

lucid iron
#

this mod will break in 1.6.9

brittle pasture
#

there's still the monster console command if it doesn't get fixed

crystal tiger
rancid temple
#

Just the normal routes of going offline, making backups of your folder, etc

hard fern
#

I set it to not updating unless i launch the game

#

So i can make (yet another) backup of sdv

rancid temple
#

Can't remember if that asks if you want to update, I thought it did but then one of my games that I had that set updated so maybe it's changed now

hard fern
#

SDVpuffersweats so i can have 3 copies of sdv on my computer...

lucid iron
#

it's a really easy thing to fix

woeful lintel
#

It would be nice to just have access to all builds, like Minecraft Java has the launcher with all versions availables

#

except, don't make a launcher, launchers are annoying

hard fern
#

I assume changing the setting would just make it so when you launch the game, it updates (?)

vernal crest
#

There are ways to make Steam games think they have updated when they haven't (I do it with Beatsaber and Oxygen Not Included) so you can still play online without being forced to update. Not sure it works with all games.

rancid temple
#

What if we all make separate mod launchers

hard fern
#

Idk why i can't pause the updates though

#

I wish we could do that

lucid iron
#

i think rokugin reported the dupe LooseSprites\buildingPlacementTiles and is therefore the culprit

rancid temple
#

I 100% didn't lmao

#

I had to fix a mod that was using it for my own uses

woeful lintel
#

my "no launcher please" opinion is only driven by the hate of the CIV6 2K launcher that takes as long to start as the game itself (too long) only to click a single button.

rancid temple
#

But I did it the laziest way possible (stealing the file from an old version and re-adding it)

#

Because I wasn't about to figure out how to target a specific part of cursors for that shit

#

I think it was AchtuurCore, need it for Better Planting lol

brittle pasture
lucid iron
#

i think the sizes r different

#

either way this mod doesnt actually use the asset so

rancid temple
#

Yeah the deleted asset is 4x bigger lol

velvet narwhal
#

i think blueb's originally reported the winter_boat being in loosesprites and that made the cascade of "yep get rid of the 4x tilesheets"

rancid temple
#

So much feral blaming energy lmao

velvet narwhal
#

i take responsibility for the uhhhhhhhh

#

farmhousetiles one

#

but that's maps

#

shrimpy become unhinged, make a copy of 168

rancid temple
#

I think they said they have 3 different versions lol

vernal crest
#

I have three different copies but they are all the same version haha

hard fern
#

SDVpuffersweats there was a copy of 1.4 on my old laptop, and i have 1.5.6, and 1.6.8

lucid iron
#

Retro modding DokkanStare

uncut viper
#

i still have a backup of stardew 1.2 i think it was with the multiplayer mod saved

velvet narwhal
#

casey's harmony-less multiplayer?

uncut viper
#

probably, unless there was another mod for it

brittle pasture
#

reminds me of the unhinged person in modded-farmers who were trying to start a new game in version 1.0 and increment the version every ingame year

hard fern
#

Oh no

rancid temple
#

Truly unhinged

velvet narwhal
#

that sounds neat in theory but what the f

brittle pasture
#

(as for why they were in modded-farmers? they wanted to install mods. in their 1.0 game. and migrate mods over.)

hard fern
#

.....

lucid iron
#

When are we gonna have a throwback thursday mod jam

hard fern
lucid iron
#

Only smapi 1.0 mods allowed

velvet narwhal
#

no xnb characters

brittle pasture
#

the winner of the throwback mod jam gets their soul stolen by xnbzola

silver pelican
#

idk anymore TuT
the file in question
schedule.json

{
    "Changes": [
        {
            "LogName": "Character Schedule - Empty Load",
            "Action": "Load",
            "Target": "Characters/Schedules/Duke",
            "FromFile": "assets/NPCData/Blank.json"
        },
        {
            "LogName": "Character Schedules",
            "Action": "Include",
            "FromFile": "assets/NPCData/Schedules/Duke",
        }
    ]
}

Duke.json

{
    "Changes": [
        {
            "LogName": "Duke Schedule",
            "Action": "EditData",
            "Target": "Characters/Schedules/Duke",
            "Entries": {
                // 0 up, 1 right, 2 down, 3 left. Default down.
                // time location tileX tileY facingDirection animation(optional) dialogue(optional) 
                "spring": "700 Custom_SunnyfieldShops 62 14 2",
                // "summer": "",
                // "fall": "",
                // "winter": "",
                // "rain": "",
                // "GreenRain": "",
            },
        }
    ]
}
hard fern
#

!json

ocean sailBOT
#

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

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

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

velvet narwhal
#

though i'm unsure why you've split the schedule even further if you've already set the load of a blank

#

if you do have a content.json that's loading this schedule.json it kinda looks like this:
content.json -> including this schedule.json -> schedule.json including this schedule edit
so it kinda turns into a spiraling mess

hard fern
#

cant you load blank json and then stick everything into the schedule.json

velvet narwhal
#

you can

hard fern
#

hm yeah so 🤔 i think setting it up like this is confusing

merry jacinth
#

😊😊I posted json file and Thank you so much for your work.

silver pelican
ocean sailBOT
#

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

vernal crest
#

Your FromFile for the include is missing a file extension, but also that error is saying that you're trying to load a file called "assets/NPCData/schedule.json" somewhere

#

I'm assuming you have a code block somewhere that you forgot to remove

silver pelican
# velvet narwhal <:SDVpufferthinkblob:958634925639225395> this code looks fine, but what about yo...

from the content.json

    {
      "LogName": "NPC Schedule",
      "Action": "Load",
      "Target": "Characters/schedules/Duke, Characters/schedules/Claes, Characters/schedules/Zina, Characters/schedules/Sora, Characters/schedules/Thew, Characters/schedules/Percy, Characters/schedules/Momo, Characters/schedules/Soren, Characters/schedules/Aki, Characters/schedules/Aoi, Characters/schedules/Oji",
      "FromFile": "assets/NPCData/schedule.json"
    },

the schedule.json having more characters added

{
    "Changes": [
        {
            "LogName": "Character Schedule - Empty Load",
            "Action": "Load",
            "Target": "Characters/Schedules/Duke, Characters/Schedules/Claes, Characters/Schedules/Zina, Characters/Schedules/Sora, Characters/Schedules/Thew, Characters/Schedules/Percy, Characters/Schedules/Momo, Characters/Schedules/Soren, Characters/Schedules/Aki, Characters/Schedules/Aoi, Characters/Schedules/Oji",
            "FromFile": "assets/NPCData/Blank.json"
        },
        {
            "LogName": "Character Schedules",
            "Action": "Include",
            "FromFile": "assets/NPCData/Schedules/Duke, assets/NPCData/Schedules/Claes, assets/NPCData/Schedules/Zina, assets/NPCData/Schedules/Sora, assets/NPCData/Schedules/Thew, assets/NPCData/Schedules/Percy, assets/NPCData/Schedules/Momo, assets/NPCData/Schedules/Soren, assets/NPCData/Schedules/Aki, assets/NPCData/Schedules/Aoi, assets/NPCData/Schedules/Oji, ",
        }
    ]
}
vernal crest
#

I think you meant to make that Load an Include

velvet narwhal
#

unless that schedule.json is blank?

vernal crest
#

The one inside your content.json, I mean

#

No the second code block is the schedule.json, I think

silver pelican
inner harbor
#

I can't remember but i think we discussed this... is it possible to make an invisible person visible again partway through the day? Say after an event?

vernal crest
#

You also can't have multiple items inside a FromFile

silver pelican
velvet narwhal
#

fromfile can get multiple things with the {{Target}} key

vernal crest
velvet narwhal
#

but you cannot specify that

inner harbor
vernal crest
#

I make Hiria visible partway through the day, let me go find it hold on

inner harbor
#

I want an npc to leave and come back it would be kore immersive if she wasnt wandering around town first

vernal crest
# inner harbor And ypu just use invisible and it toggles?

This is specifically a time-based trigger using SpaceCore that makes Hiria visible again at 6pm.

                "{{ModID}}_Dentist_Return": {
                    "Id": "{{ModID}}_Dentist_Return",
                    "Trigger": "Manual",
                    "MarkActionApplied": false,
                    "Actions": [
                        "SetNpcVisible Aba.Hiria"
                    ]
                },
        {
            "Action": "EditData",
            "Target": "spacechase0.SpaceCore/TriggerActionExtensionData",
            "Entries": {
                "{{ModID}}_Dentist_Return": {
                    "Times": [ 1800 ]
                }
            }
        },
velvet narwhal
#

oh, you do have a comma in the character schedules include

velvet narwhal
#

dunno how that affects things, probably not good

uncut viper
inner harbor
#

Ah cool, love spacecore!

vernal crest
#

(Yes, thank you for clarifying that Button!)

inner harbor
#

Right so im basicslly spicing up Jades heart events.

uncut viper
#

(i've on more than one occasion glanced past similar bc my brain just was already expecting e.g. SetNpcInvisible and read it as the same, so)

inner harbor
#

(Not in a saucy way but maybe a little (implied) for the date)

silver pelican
#

ok so i made changed the Load to Include (the one in content.json) and added .json in the FromFiles in schedule.json 44071catcry i hate thiisss

velvet narwhal
#

SDVpufferthink honestly i believe seeing an entire folder structure for an npc with separated .jsons is the way to go, especially since i can't really infer how people have set things up

#

Remind me in 12 hours to recheck my releases.zip for edelweiss on github please

patent lanceBOT
#

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

inner harbor
#

Im gonna have to redo my i18n file at some point... thata not gonna be fun. Its a sprawling mess

#

I think ill deconstruct it then reconstruct it

silver pelican
vernal crest
# inner harbor Right so im basicslly spicing up Jades heart events.

If the coming back is right after the event, it is probably easiest to put the SetNPCVisible action inside the event itself. My way with the SpaceCore manual trigger means dealing with some fussiness around schedule as the NPC won't move after becoming visible again until their next schedule point starts (which in my case means Hiria stands in front of the bus for ten minutes before moving - it looks kind of weird but I'm willing to bet most people won't be hanging around timing her lol)

velvet narwhal
vernal crest
velvet narwhal
#

that reminds me, i have to set caseSensitivity to all of this because of linux

#

SDVpuffersquint for extra measure i'm keeping it caseSensitive to even the dumb ones like Characters/schedules

silver pelican
#

I'll give it a go! 76756catlove I hope I dont accidentally leave any special characters behind XD

hard fern
#

😔 now it's time for me to beat up my npc's portraits for the 17th time

#

(i am making 0 progress)

vernal crest
#

Hooray my SVE compat is incredibly minimal!

#

I have split far too many things into separate files considering how small this mod is SMCKekLmaoDog

velvet narwhal
#

looks at mothman real quick

#

i'm waiting for the modding-contest ping

vernal crest
#

Ohhh I thought today was my last day to get this done but I have tomorrow as well!

vague acorn
#

Wait there’s a modding contest?

velvet narwhal
vague acorn
#

Oh cool

velvet narwhal
#

you've got <t:1730419200:R>

#

oh wait i wrote 6 not 5

vague acorn
#

There’s this one NPC that is sitting on my mind for like 2 years now that I wanna make, and I think I’ll finally do that XD

vernal crest
#

For the modding contest?

vague acorn
#

No

#

In general

faint ingot
#

I'm finally wrapping up this one heart event it feels like I've spent ages on... SDVpufferwow I can breathe now

vernal crest
#

Okay I was going to say you're going to have to run like the wind to get that done haha

vague acorn
#

XD

vernal crest
#

Some people - cough Aviroen cough - could manage that but it'd be intense

vague acorn
#

Considering I have no idea how to actually do sprite work it will take some time

hard fern
#

SDVpufferflat just like me

velvet narwhal
#

listen, i just have an active skeleton i can pull from because i wrote the tutorial

vague acorn
vernal crest
#

Don't worry, I didn't know how to draw at all when I started!

silver pelican
#

moooooooooove. xd
i did a big cleanup. idk where i messed up (prolly here and there spaghettiiishh) but atleast its working as intended.

vernal crest
#

I'm not amazing at it now or anything but I do okay

vague acorn
#

I can only do stuff like items

#

But an artist friend of mine will probably help a bit

hard fern
#

SDVpufferflat i do everything myself, including portraits

zealous grail
#

Sorry

velvet narwhal
#

i beg my world sprite artist to take care of my expansion, we'll see if she'll be willing to do so for the amount of bs i plan to do

late dust
#

Hi. I am to ask for your help, I would like to add to a vanilla map a tile warp, what should I add to this? {
"Format": "2.3.0",
"CustomLocations": [
{
"Name": "Custom_DwarfRoom",
"FromMapFile": "assets/DwarfRoom.tmx"
},
{
"Name": "Custom_KrobusRoom",
"FromMapFile": "assets/KrobusRoom.tmx"
}
],
"Changes": [
{
"Action": "EditMap",
"Target": "Maps/Mine",
"AddTile": ["48 9"],
"FromFile": "assets/Scala.tmx",
"ToArea": {"X": 48,"Y": 9,"Height": 1,"Width": 1}
},
{
"Action": "EditMap",
"Target": "Maps/Sewer",
"AddTile": ["34 17"],
"FromFile": "assets/Botola.tmx",
"ToArea": {"X": 34,"Y": 17,"Height": 1,"Width": 1}
}
]
}

hard fern
#

😔 it takes a loong time

silver pelican
#

i do not know but this is like elementary flag ceremony. I can sleep today QuQ **Thank you guys. 5058stonedyay **. Next problem will be tomorrow's meal.

vague acorn
vernal crest
velvet narwhal
vernal crest
#

Weird, my trigger action condition has defaulted to null instead of true

hard fern
velvet narwhal
#

it's not bad per se to use the custom location if you're not going to do anything with it, but you don't get the fun of setting the bgm, fishing, digspots, etc if it's an outdoor

vernal crest
#

!NPC

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:

vernal crest
#

Or this

vernal crest
velvet narwhal
#

you can go my crazy route, find your favorite mod of an npc expansion, dissect it, give yourself a headache because you're expanding an SVE NPC

vernal crest
#

You forgot "get cross at users, consider removing your mod from circulation" :P

velvet narwhal
#

considering SVE still uses custom locations i doubt it'll be wiped anytime soon, unless the core of vanilla changes

vague acorn
velvet narwhal
#

true, i am tired of the entitlement SDVpufferthink

vernal crest
#

Hiria is based on Sam with a hint of Demetrius

velvet narwhal
#

tia's guide does have the sprite sheet layout for the correct sizes

vernal crest
#

Hiria, for context for my suggestions

velvet narwhal
#

tbh i start at portraits because i hate world sprites

vernal crest
#

I also start at portraits but for me that's because it's hard to figure out what my character is going to look like just via sprite

#

And my advice about editing vanilla with non-vanilla references applies to portraits as well - Hiria's portrait is mostly based on Sam too

#

Though I hope by this point she feels distinctly herself

vague acorn
#

Also the character will effect other stuff in the future (it adds a new movie to the theater)

vernal crest
#

Nice

#

Hmm looks like the wiki might be wrong about trigger action conditions defaulting to true

#

I will investigate....later

vague acorn
#

Well, I think I’ll start writing some general stuff about Nicolas now

hard fern
#

SDVpufferchickcry yaaay 2/12 expressions done

#

i used abby as a reference for mine

fiery cobalt
#

Does anyone know where I can find a tutorial or example of adding skins to animals? Like with the white/brown cows and chickens? I have a bunch of horses and would rather do it that way then adding each of them to the catalog

hard fern
#

XD believe it or not i actually just started with a 64x64 canvas and have been resizing it as i go

pine elbow
silver pelican
#

(changed)
is there a command that lets u trigger or repeat a dialogue? (like Introduction, or cc_Begin, etc)

hard fern
#

💀 i tried to draw a flower, it looks like texas

vernal crest
vernal crest
#

Bleh, I don't understand enough C# to find the trigger action condition default

rancid temple
#

Like what Condition defaults to if you don't put anything?

vernal crest
#

Yeah. The wiki says it defaults to true, but mine and SVE's are defaulting to null and then the game throws an error

rancid temple
#

Are you putting anything in the field or just omitting it?

vernal crest
#

Omitting

#

[game] Failed parsing condition 'Null': 'Null' isn't a known query or alias.

rancid temple
#

Hm

vernal crest
#

It gives me the same error if I set "Condition": "true", or "Condition": true, or "Condition": "", as well.

#

I should check with an actual GSQ just in case I've somehow done something unrelated to cause this

#

Hummm it is still telling me that it's failed parsing the condition when I have "Condition": "SEASON spring",

rancid temple
#

What's your json look like?

ocean sailBOT
#

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

rancid temple
#

Time to see if my PC will run Satisfactory and SDV at the same time SDVpufferblargh

vernal crest
#

Hmmm actually depending on when DayStarted runs, my changes might not be affecting my existing save

velvet narwhal
#

iirc daystarted =/= saveloaded

vernal crest
#

Nope still getting the error on a new save

rancid temple
#

That's not ideal, SpaceCore giving me an error now

vernal crest
#

Patch export of data/triggeractions. I see no null conditions!

  {
    "Id": "Abagaianye.tricktreatCP_Buff",
    "Trigger": "spacechase0.SpaceCore_OnItemEaten",
    "Condition": "ITEM_CONTEXT_TAG Input trick_treat",
    "HostOnly": false,
    "Action": null,
    "Actions": [
      "Spiderbuttons.BETAS_RandomAction TRIMMED",
      "spacechase0.SpaceCore_ShowHudMessage \"Trick or treat!\""
    ],
    "CustomFields": null,
    "MarkActionApplied": false
  },
  {
    "Id": "Abagaianye.tricktreatCP_Letter",
    "Trigger": "DayStarted",
    "Condition": "SEASON spring",
    "HostOnly": false,
    "Action": null,
    "Actions": [
      "AddMail All Abagaianye.tricktreatCP_Graveyard now"
    ],
    "CustomFields": null,
    "MarkActionApplied": true
  }
#

I'm not having any issues actually receiving the letter.

velvet narwhal
#

what mod do i have that has a trigger action on hand.....

rancid temple
#

If I recall correctly, DayStarted vs SaveLoaded only matters in a C# context, for CP you don't have to worry about that really

#

My mail mod with no Condition is still working

velvet narwhal
#

if you're on 1.6.9, roku, spacecore needs to re-serialize because of the midnight beta patch

rancid temple
#

Re-serialize?

velvet narwhal
#

uhhhhh save serializer changed again

rancid temple
#

Right but do I need to actually do something about this? lol

vernal crest
#

I wish I could get more information about what condition it's trying to parse as null

velvet narwhal
rancid temple
#

I'm gonna guess maybe wait for the next SMAPI release

velvet narwhal
#

i'm trying to dig into aba's raw log but that's 1.6.8 so time to squint

vernal crest
#

Is it my mail entry itself?

#
        {
            "LogName": "Add Graveyard Mail",
            "Action": "EditData",
            "Target": "Data/mail",
            "Entries": {
                "{{ModID}}_Graveyard": "You may find something of interest if you visit the graveyard.^^P.S. Tell no one of this.^^P.P.S. Burn this note.[#]A spooky note"
            }
        },
velvet narwhal
#

nope

vernal crest
#

Bleh, I don't want to submit an entry for the mod contest that has an error in it

#

It's bad enough that my witch gives the item before he says the thing about giving you an item.

#

I didn't have a null condition error for the buff trigger action

velvet narwhal
#

SDVpuffersquint

[18:19:13 INFO  Profiler] [250,047.99][Fast] Warped FarmHouse -> Farm (0600)
[18:19:13 INFO  Profiler] [250,049.41][Slow] Warped FarmHouse -> Farm (0600)
[18:19:14 TRACE Event Lookup] Loading LooseSprites/letterBG
[18:19:14 ERROR game] Failed parsing condition 'Null': 'Null' isn't a known query or alias.```
vernal crest
#

I am so baffled

velvet narwhal
#

it's saying somewhere there's a "Null": null ? maybe? i don't know either though

vernal crest
#

It is something to do with my AddMail action or something because I just changed the action to the spacecore showhudmessage instead and didn't get the error

#

And I don't get the error when I do "AddMail All Abagaianye.tricktreatCP_Graveyard received"

#

There is something specific to checking the mailbox that causes the error

velvet narwhal
#

are your..... letterBGs missing?

vernal crest
#

Nope

velvet narwhal
#

nope i'm stumped

#

i can test and see on my end if you wanted to yeet me the zip

vernal crest
#

Yeah will do in a second, just want to rule out my C# mod

velvet narwhal
#

i think i still have dev smapi

vernal crest
#

Okay I am literally down to Content Patcher, Console Commands, and my mod and it's still happening

#

Let me tidy the files and zip it for you

rancid temple
#

I got so many other errors lol

vernal crest
#

Trying to run mine?

rancid temple
#

Yeah, I'm missing some stuff I guess

velvet narwhal
#

yeah the mail popped up

#

hold on i have the log

vernal crest
#

Hmm I think I've commented out the BETAS and SpaceCore stuff so you shouldn't be missing anything

rancid temple
#

Did indeed get errors when opening the mailbox

vernal crest
#

The mail has been popping up the whole time, Avi

#

It's just that the error does too

velvet narwhal
#

oh i meant yeah-

#

with the verbose smapi

ocean sailBOT
#

Log Info: SMAPI 4.0.8 with SDV 1.6.8 build 24119 on Microsoft Windows 10 Home, with 9 C# mods and 4 content packs.

rancid temple
#
[Content Patcher] Can't apply patch Trick or Treat > Include Aba_maps > data/Aba_maps.json > Load Apollo House map to Maps/Abagaianye.tricktreatCP_ApolloHouse:
StardewModdingAPI.Framework.Exceptions.SContentLoadException: Trick or Treat loaded map 'assets/maps/Aba_ApolloHouse.tmx' with invalid tilesheet path 'Particle FX 1.2 Free/Spritesheets/Smoke-Sheet.png'. The tilesheet couldn't be found relative to either map file or the game's content folder.```
This was the first error I got that I think caused more after it, but didn't stop the mail from happening
rough epoch
#

Hi

#

I didn’t know you can make your own mods

velvet narwhal
#

also sorry forgot to remove my own bs

vernal crest
#

Oh I must not have actually removed the tilesheet from the map even though I removed all the tiles, whoops. Thanks

vernal crest
#

Except for times like right now where you have an error that you can't find or understand haha

rancid temple
#

I need repo access so I can debug...

rough epoch
#

Yea, idk how to help. Complete new at this

rancid temple
#

Shouldn't have kept putting off asking lmao

velvet narwhal
#

what happens if you split the trigger actions, aba?

#

actually i can just do it myself one second

vernal crest
#

Well, the copy you got only had the one trigger action in it anyway

#

I'd commented the other one out

rancid temple
#

What if you add the mail for tomorrow?

velvet narwhal
#

oh

vernal crest
#

I'll try tomorrow

rancid temple
#

The fact that it's happening when you open the mailbox makes me think it won't matter

#

It's so weird that it's happening then because the conditions shouldn't matter at that point

vernal crest
#

No dice

#

Yes, exactly!

velvet narwhal
#

i never use anything except "Current" for my player targets so i have no idea

vernal crest
#

And when I make it "received", no error

rancid temple
#

Doesn't that not put it in the mailbox though?

vernal crest
#

Yes

#

So it's not actually useful for me

rough epoch
#

Can someone explain the bases of making a mod? I’m curious

vernal crest
#

But it shows the trigger is running without getting that error

velvet narwhal
#

!startmodding right?

ocean sailBOT
#

Making mods can be broadly divided into two categories:

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

vernal crest
#

My mod is somehow messing up the action of checking the mailbox

#

I wonder if it's interfering with vanilla mail too

#

IT IS

#

I have broken the game

rancid temple
#

With a CP mod alone

velvet narwhal
#

SDVpuffersquint huh

vernal crest
#

It was same day mail

#

I'm going to check if it breaks different day mail too

#

Yup, it affected Willy's mail on a different day

velvet narwhal
#

i wish verbose told me more than just what 'null': 'null' is

calm nebula
#

Is this just all mail

vernal crest
#

Trigger action to add mail

rancid temple
#

Okay, I commented everything but the trigger action out and it didn't do the error

vernal crest
#

What do you mean everything but the trigger action?

#

Like everything in my entire mod except the trigger actions?

rancid temple
#

Yeah, like everything in Changes but the Include for your trigger action

vernal crest
#

Was it a blank letter?

rancid temple
#

And the mail I guess

vernal crest
#

Did you comment out the Buff trigger action?

rancid temple
#

I left that commented out

#

Didn't touch anything in the included file

velvet narwhal
#

wait

#

wait no that shouldn't matter either

vernal crest
#

So the mod now consists of one trigger action and one piece of mail?

rancid temple
#

Yeah, and no errors lol

#

I think it's your NPC

velvet narwhal
#

"Mon": "$action AddMail Current {{ModID}}_welcomeflag now # {{i18n: apollo.welcome|ModID={{ModID}}}}", this?

rancid temple
#

I put everything back, commented out objects, still got the error. Commented out the NPC's json and no error

vernal crest
#

Hmm

#

Nope, not the dialogue

#

Maybe it's the appearance?

calm nebula
#

What do you have for apperances

rancid temple
#

I notice you have a lot of "Null" and "True" and "False" in this character data

velvet narwhal
#

OH

rancid temple
#

I'm fairly certain those should just be null true and false

vernal crest
#

Appearance

"Appearance": [
                        {
                            "Id": "Blue",
                            "Indoors": "True",
                            "Outdoors": "True",
                            "Portrait": "Portraits/Aba.Apollo_blue",
                            "Sprite": "Characters/Aba.Apollo_blue",
                            "IsIslandAttire": "False",
                            "Precedence": "0",
                            "Weight": "1"
                        },
                        {
                            "Id": "Purple",
                            "Indoors": "True",
                            "Outdoors": "True",
                            "Portrait": "Portraits/Aba.Apollo_purple",
                            "Sprite": "Characters/Aba.Apollo_purple",
                            "IsIslandAttire": "False",
                            "Precedence": "0",
                            "Weight": "1"
                        },
                        {
                            "Id": "Green",
                            "Indoors": "True",
                            "Outdoors": "True",
                            "Portrait": "Portraits/Aba.Apollo_green",
                            "Sprite": "Characters/Aba.Apollo_green",
                            "IsIslandAttire": "False",
                            "Precedence": "0",
                            "Weight": "1"
                        }
                    ],
#

I don't actually need most of the fields in the data/characters bit at all anyway but I was testing fireredlily's NPC data creator for them

rancid temple
#

I am pretty sure if you use strings in the spots that expect null it fails

hard fern
#

SDVpufferflat my net died

rancid temple
#

Not sure about true and false though

hard fern
#

But i got 6/12ths of my portraits done yahoo

vernal crest
#

"FlowerDanceCanDance" was the only one that threw an error about being "null" but that would make sense if the others aren't liking it either

calm nebula
#

Yeah, in general don't put in fields if you're not using them

vernal crest
#

It's just bizarre that checking the letterbox was the time it decided to complain, instead of when actually talking to the NPC or something

velvet narwhal
#

yep

#

that was it

#

the error is gone

vernal crest
#

I don't, Atra

rancid temple
#

Appearances was it?

velvet narwhal
#

nope i changed all of the data/character

rancid temple
#

Oh ok lol

velvet narwhal
#

to unapostraphe'd true/false/null

vernal crest
#

Okay this is excellent to take back to fireredlily then

rancid temple
#

Test failed successfully

rancid temple
#

A shame about the panic spiral

velvet narwhal
#

good catch tho roku i didn't even bother looking in the npc data

vernal crest
#

I'm going to take all the optional fields out completely for tidiness but I'll tell them about it so they fix their creator

#

Thank you both for helping me SMCFrogHug

#

I am stressing slightly about the amount of time i have left to polish and release this mod haha

rancid temple
#

I employed the good ol' "remove everything and put some of it back until you find the culprit" method

velvet narwhal
#

"have you tried plugging in your usb into a different port?" me @ my old job

rancid temple
#

"Start by unplugging the phone from the wall, I'll wait"

vernal crest
#

Things like Age, Manner, SocialAnxiety, and Optimism don't affect non-social NPCs, do they?

uncut viper
#

they will affect very minor dialogue things

rancid temple
#

Seems like those all have defaults, not sure how many of them will come into play though

#

Like your NPC is probably not gonna catch the farmer digging in trash cans

#

But if you don't set DumpsterDiveEmote, Age automatically chooses one for you

uncut viper
#

off the top of my head it will affect whether or not your NPC says hi to someone when walking around and how they react to you drinking mayonaisse

hard fern
#

😓 the way i actually forgot my npc's birthday

rancid temple
#

That is so specific lmao

vernal crest
#

I do not think I care enough about the possibility someone will drink mayo in front of him to bother testing that lol

uncut viper
#

then the only other thing it'd possibly affect is them commenting on things they've bought that you've sold

#

i.e. "i bought some of the blueberries you sold to pierre the other day"

calm nebula
#

It's mostly used for generic dialogue stuff though

vernal crest
#

I wouldn't have thought a non-social NPC could go to GI

uncut viper
#

that is correct i was skipping over age bc its mostly irrelevant

velvet narwhal
#

Does anything in the data/character actually affect isSimpleVillager?

calm nebula
#

Nope

vernal crest
#

Hooray, I did a test run of the entire experience and no errors!

calm nebula
#

That's just code for "simple npc mostly generated by code."

velvet narwhal
#

Ah wait I see, canvisit probably just negates it

#

I now sleep in peace fimsbeard

brave fable
#

i have gravely misunderstood the front layer

#

in the entire map
lol

rancid temple
#

The front layer hates to be understood

finite ginkgo
subtle agate
brave fable
#

i've walked around this map for literally years in real life how have i never noticed every single front tile is wrong

woeful lintel
#

Shouldn't the whole tree be on the same layer to avoid issues like this

brave fable
#

if every part of the tree is on the same layer, how're you gonna layer trees over eachother

woeful lintel
#

what do you mean?

brave fable
#

say a whole tree is on Buildings, if you try place another tree behind it, it's also going to be on Buildings and you'll have replaced the tiles of the tree in front

#

plus Front and AlwaysFront have other uses

#

i just didnt think at all

rancid temple
#

Buildings2: Tree Boogaloo

woeful lintel
#

Ok, I actually don't understand how map layer works

#

From what I know about the game, the depth is a linear function of the vertical coordinate

brave fable
#

yeah Buildings1 is my new front

#

front for the challenged

finite ginkgo
#

For trees I would put the bottom tile on Buildings, the one(s) right above it on front and then everything else on AlwaysFront (or AlwaysFront# if i want to overlap things)

brave fable
#

see that's what i did

#

that's wrong lol

finite ginkgo
#

Hm, that's worked for me

#

Now i'm confused

rancid temple
#

I think the problem there is that hats ignore Front

finite ginkgo
#

hats.... why

rancid temple
#

The problem is more like the farmer rendering is fucked rather than the Front layer

woeful lintel
#

yeah, ok I see, the tree takes up tiles where it's drawn, not where the base is

rancid temple
#

Any hat that sticks out a lot will really show off just how bad it is

woeful lintel
#

that's annoying as hell for map making

brave fable
#

you say that, but this chara also has her hair clipped off by the pillar being half on Front

#

which it WASN'T LAST NIGHT

#

DID SOMETHING CHANGE

woeful lintel
rancid temple
#

Oh interesting

brave fable
#

@ STARDEW DEVELOPER ROLE

rancid temple
#

Time to yell at Pathos

brave fable
#

i have replaced SO MANY front tiles

#

grumble grumble maybe i just fucked my location draw calls somehow

#

oh my god

rancid temple
#

I can check in like 2-ish hours lol

brave fable
#

what the hell is this

#

oh my god that was it. drawing birds in my location was replacing the entire gd sorting

#

very glad i didn't ping stardew developer 😌

#

now we learn how many history states tiled keeps (wow, actually lots. 🥳 )

woeful lintel
#

reminds me of that time I had a game crash because I was deep-cloning a struct with a whole ass Texture2D and SpriteBatch

calm nebula
#

Also getting trinkets to clip doesn't count

near sierra
vernal crest
near sierra
vernal crest
# near sierra It’s best practice, though, so that’s what I do.

It's definitely not best practice to use numeric IDs in events! It used to be before 1.6 (well, actually, it wasn't possible to use anything but numeric IDs before 1.6) but it's a worse practice now because it's less human readable and has no benefit (that I know of).

finite ginkgo
#

Event IDs were numeric pre 1.6 and that's why any pre 1.6 mods only have numeric ids, 1.6 changed them to strings so now they can be anything (For example I have a {{ModId}}.Introductions event id in one of my mods)

vernal crest
# near sierra Oh.

Using your mod ID in the event ID as a prefix (like you have) is best practice to ensure your event ID is unique. So if you keep the {{ModID}}_ part and just change the numbers to words, you'll be keeping with best practice and have easier to understand event IDs :)

near sierra
vernal crest
# near sierra I see. I’ll do that next time I open the code.

I can see where you could've gotten that impression about the numeric IDs though because there's still a lot of pre-1.6 information out there and many of the most popular mods still use numeric IDs because they existed before 1.6 and don't want to risk breaking saves by changing now.

near sierra
calm nebula
#

The fact that people make mods for classes is wild to me

naive depot
#

yea

calm nebula
#

We made transistors

tiny zealot
#

they're probably not EEs, atra

calm nebula
#

you don't make transistors for fun?

tiny zealot
#

(i'm also not an EE)

#

hey friends, i am creating a GameLocation on demand (linked by id/name to the farmer who requests it). it's a normal GameLocation so it is making it to the save data just fine.
on load, it is being ignored (unknown location). should i be adding it to Data/Locations after creating, or do i listen for LoadStageChanged? (or maybe both?)

vernal crest
#

Me: I am sad that GMCM doesn't let me replace my AllowValues with the translated values
Also me: forgot to change the name of the config option translation key to the actual name of my config

tiny zealot
#

(i am not clear on the life cycle of a location when loading save data)

calm nebula
latent mauve
tiny zealot
latent mauve
#

I just woke up and am catching up on the chat

lucid iron
#

is it like an instanced location

vernal crest
vernal crest
#

Whoops, now I forgot to make my config actually do anything >_<

tiny zealot
latent mauve
#

I had removed all the quotes around null the last time, but not around true or false in the same field sets

lucid iron
#

instanced location like the inside of a farm building

#

though it doesnt sound like that so carry on kyuuchan_run

tiny zealot
#

i guess it's sort of like that (they share map data), but instanced to the player and not to the building

latent mauve
#

It's possible I missed one though

vernal crest
lucid iron
#

ah sorta like how pif uses instanced locations then

calm nebula
#

It's like how the cellar is instanced

#

It's like cellars

tiny zealot
latent mauve
#

Yeah, should I keep the quotes around "true" and "false" if it's a field that can take a GSQ, or still have the quotes stripped out if true or false is entered?

lucid iron
vernal crest
latent mauve
#

That would be very helpful, thank you!

tiny zealot
#

now that i have hot reload working, i hate when i leave it up and reflexively save a file but am not ready to reload the hecking game

lucid iron
#

did you ever sort out the console issues?

vernal crest
#

Odd, most of my tile animations seems to be going too slowly.

hallow prism
#

is it possible to do
"marriage_spring_3": "GOTO 3",?

#

since married npcs ignore non marriage schedules typically

calm nebula
#

Yes but they sfart at the farmhouse still

tiny zealot
#

i am chronically out of screen space so usually it covers something else

hallow prism
vernal crest
# latent mauve That would be very helpful, thank you!

So it seems like the GSQ-value fields can take any of true, "true", false, "false", null, or "null" with the exception of three fields: CanCommentOnPurchasedShopItems, WinterStarParticipant, and FlowerDanceCanDance - the three of which can take any of the true/false/null values except "null". No idea why those three are different. I also don't know if the game is interpreting "null" as an actual null for the other fields - I just know that it's not giving the failed converting entry to the expected type 'StardewValley.GameData.Characters.CharacterData': Could not convert string to boolean: null error and it's not giving the Failed parsing condition 'null': 'null' isn't a known query or alias. error.

#

In the process of testing this I have somehow managed to break my C# mod.

hallow prism
#

FlowerDanceCanDance isn't mentioned as a GSQ on the wiki, but WinterStarParticipant is

#

CanCommentOnPurchasedShopItems isn't mentioned as a GSQ either

#

maybe the WinterStarParticipant started as boolean then evolved in GSQ but some parts of the code weren't updated?

vernal crest
#

Oh yeah thank you for checking me on that, Lumi. I think I started at the top of the list of NPC data on the wiki before remembering I was meant to be checking GSQs.

#

The two that aren't GSQ-value - FlowerDanceCanDance and CanCommentOnPurchasedShopItems - break the patch entirely if not set to a bool for null - though they don't break it if they are set to "true" or "false". WinterStarParticipant is the only one that caused the Failed parsing condition 'null': 'null' isn't a known query or alias. when checking the letterbox if the value was set to "null" instead of null.

#

So what you're saying about it being a GSQ that started as a boolean makes sense to me, Lumi.

latent mauve
#

So for the sake of my tired brain: did I just miss quotes on a null for FlowerDance or do I need to change the "true", "false", null options to remove the quote marks for all of those?

#

And if I tell my formulas to remove the quotes on "true" and "false" will it break anywhere else?

vernal crest
#

I told you about the FlowerDanceCanDance one a while ago, so I think you're already fine with that one as-is. You just need to make sure that CanCommentOnPurchasedShopItems and WinterStarParticipant also have "true", "false", null as their quote setup.

latent mauve
#

Ok

#

Thank you for simplifying it, my brain is very tired

vernal crest
#

I think you're better off not removing the quotes around true or false, because if someone wants to use an actual GSQ that will need to be inside quotes.

#

And null is the only value for WinterStarParticipant that must be without quotes.

latent mauve
#

Yeah, if you had told me those needed to be true, false, "GSQ" it would have been annoying but I could have done it

#

Just didn't want to go through that effort and then have the error yell that it got bool when it expected a string

vernal crest
#

I did test several of the GSQ ones with bools and they do accept true/false as bool values but for the sake of users I think it'd be better to make null the only bool value

#

Lest you get people trying to write GSQs without quotes

latent mauve
#

Yeah

#

Okay, so on a review of the latest version of the builder, I had already resolved all of those null issues EXCEPT for adding the possibility of a null value to CanCommentOnPurchasedShopItems

#

I'd already fixed WinterStarParticipant

vernal crest
#

Ah okay, sorry for all the faff then!

latent mauve
#

No worries! There's no way of updating copies you made, so it's good to make sure it's just the copy that's out of date.

hard fern
#

Hm, ive got a question about npc spritesheets

#

So

#

For the flower dance and wedding sprites, those are hardcoded, right? Like you can't move those around

latent mauve
#

For custom characters, there is in fact a field that will tell your sheet which sprite frames to use for some animations. Nevermind, was thinking of something else

#

But I think that may be new to 1.6?

hard fern
#

I thought that was for the kiss sprite(?)

latent mauve
#

Lemme review Data/Characters to make sure I'm not thinking of a future feature or just the kiss sprite

finite ginkgo
#

Yes flower dance and wedding sprite positions are hard coded, you can change the kissing sprite in the dispo

latent mauve
#

Yeah, I was thinking of the kiss sprite

#

My brain merged kiss sprites and animationDescriptions logic in my head

hard fern
#

Male and female npcs have different positions 🤔 i read that if you leave your npcs's gender as undefined, it'll default to as if you had it say female, so is that where that would come into effect (?)

latent mauve
#

(Also, as a note, we need to edit the wiki to use a static image link instead of a discord image link for the example sprite sheet, since it's broken now)

hard fern
#

🤔 this one?

latent mauve
#

the one from TheLimeyDragon, so if that's the same one, maybe?

#

Discord autobreaks hotlinks after 24 hours, so that's why it's dead on the wiki

hard fern
#

It is the same one

#

But it's not dead

tiny zealot
latent mauve
#

"This content is no longer available" tells me the hotlink is dead, LOL

hard fern
#

Huh

latent mauve
#

It won't break within Discord, just externally

hard fern
#

I was looking at it on the wiki though

#

So maybe im a bit confused 😓

tender bloom
#

Discord did change their policies to be less conducive to image hosting

hard fern
#

Well ill figure it out if i marry my NPC and the game dies on me

tender bloom
#

At some point sort of recently

latent mauve
#

this link is broken for me/dead by Discord's hotlinking policy change

#

just to be clear

hard fern
#

I might be looking at the wrong page then rip

latent mauve
#

I'm on the main SDV wiki on the Modding:NPC_Data page, if you're looking at Tia's tutorial, for instance, they might have the image hosted somewhere static so it doesn't break

hard fern
#

Ah i see now

tall wind
#

Can you add “Help Wanted Quests?” I don't know where the data is...

tiny zealot
#

i think it requires C#, since if memory serves the set of options is mostly hardcoded and builds a quest mad libs style from parts

tall wind
#

OK, thanks for letting me know!

crystal yarrow
#

still stuggling to update my npc to 1.6.. can i just pay someone to fix it for me😭😭

ocean sailBOT
#

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

crystal yarrow
#

and then im working on getting my dispo changed but i dont know what folder to put it in because each tutorial i follow is different

#

i would appreciate any help

sweet sphinx
#

can NPCs walk onto the farm?

lucid iron
#

Not by default

#

You can make events that take place in the farm though

cyan marsh
#

Game1.Random can do decimals?

latent mauve
crystal yarrow
#

it is- it hasnt been updated at all since june so theres a lot of stuff missing

cyan marsh
#

this doesn't look like a Json D:

crystal yarrow
#

and i am so confused

latent mauve
#

Okay, yeah, so this just looks like a series of entries, so you need to include the entire action block.

cyan marsh
#

ah there it is.. update to validator xD

cyan marsh
crystal yarrow
# cyan marsh what's the issue I can help you

i guess i just dont understand the new format? i used your npc creator when i first made this npc in janurary, and i'm trying to copy the github example but i dont understand where the sprites and portraits go, where the festival data is supposed to go since the content file is different now

cyan marsh
#

all agreed formats aside, there isn't a specific place, so long as you content.json is correct

#

how about you send me a copy of what you got

#

I can get you on to the next stop

crystal yarrow
#

this is corrected i think

cyan marsh
#

no no... I meant send me the mod

crystal yarrow
#

ooh ok

cyan marsh
#

you shouldn't put spaces in your files

#

so tenko Edit might be confusing CP

crystal yarrow
latent mauve
#

Spaces don't impact anything in the LogName as long as they're enclosed by " " marks.

crystal yarrow
#

this is what i have in my mods folder, ive been editing it so it might be a bit of a mess

#

so i apologize lel

cyan marsh
#

np

#

first lets update to character data

#
    {
      "LogName": "NPC Manifestation",
      "Action": "Include",
      "FromFile": "assets/disposition/Disposition.json"
    },
``` change this to this: ```json
    {
      "LogName": "NPC Manifestation",
      "Action": "Include",
      "FromFile": "assets/Data/Tenko.json"
    },
crystal yarrow
#

ok thats been changed

cyan marsh
#

okay.. for the marriage dialogue, you don't need the Changes as it's a Load action

crystal yarrow
#

that was what was confusing me in the examples, cause it says like assetts/character/data but i never saw any folders called character or data in the github example

cyan marsh
#

yeah.. because I haven't finished updating it since I lost all my source code xD

crystal yarrow
cyan marsh
#

the marriage dialogue you sent me is correct

#

okay.. I don't see anything else that would stop the NPO from loading

vernal crest
#

Just be aware that loading your dialogue like that will prevent you from using tokens of any kind, including i18n

cyan marsh
#

yep.. you will have to fix that later.. I'm just getting it running

crystal yarrow
cyan marsh
#

I'm not good with i18n stuff

#

so I am not big help there x3

crystal yarrow
cyan marsh
#

you might want to work with this: ```json
"Home": [ //sets the npc's spawn point
{
"Id": "Default", //the default of where they spawn
"Condition": null, //game state query-able condition if they change homes
"Location": null, //specific location from data/location
"Tile": {
"X": 0, //x position where the npc idles
"Y": 0 //y position where the npc idles
},
"Direction": "right" //direction that they face while idling
}
],

#

I don't think you gave your NPC a spawn

vernal crest
#

They'll just spawn in town if they don't have a home so if they don't show up the lack of a home is not the culprit

cyan marsh
#

is that so?

#

that's a nice change

#

I really never thought to do that mcthink

#

this will make things easier

#

how will it handle that, and if there were multiple NPCs with no spawn

vernal crest
#

I don't remember the exact coords they spawn at. I'm pretty sure button's mentioned it in here before though.

#

My guess is that they will spawn on top of each other

cyan marsh
#

I've been quite busy from my job so I've never read it

crystal yarrow
#

how long ago was the update that changed all this?

#

august?

cyan marsh
#

whenever 1.6 came out xD it's all a blur to me

vernal crest
#

Ah ha, 29 67

tiny zealot
#

march 19th is when 1.6 came out and updated the character data format

crystal yarrow
#

wow its been a lot longer than i thought it was..

vernal crest
#

Yup it's also been a really long time since we hit 1.6.8

crystal yarrow
#

game is still loading up but smapi said this [Content Patcher] Can't apply data patch "Tenko Shimura > NPC Manifestation > assets/Data/Tenko.json > Data/Character edit > entry #1" to Data/Characters: failed converting entry to the expected type 'StardewValley.GameData.Characters.CharacterData': Error converting value "unknownuntilmet" to type 'StardewValley.GameData.Characters.CalendarBehavior'. Path 'Calendar'..

#

ill link the parser once i get in game

cyan marsh
#

I've got Event Repeater and Dear Diary restored... I decided to make a stronger Investment mod... and NPC Creator has been hobbling on the old code for a long time

#

I really need to build that from scratch

latent mauve
#

UnknownUntilMet isn't valid for Calendar, that should be HiddenUntilMet

#

IIRC

cyan marsh
#

building a translateable randomized mail is rough xD

vernal crest
vernal crest
cyan marsh
#

there's a lot of stuff needed to make an NPC... but honestly, it's technically easier than it used to be

velvet narwhal
#

The unknownuntilmet is probably from me SDVpufferpain I'll have to check back as to what are the actual values

cyan marsh
latent mauve
cyan marsh
#

because I'm lazy

crystal yarrow
#

oh goodness hes upside down

vernal crest
cyan marsh
velvet narwhal
#

Size is off

crystal yarrow
vernal crest
#

Argh being on my phone makes it so hard to find examples

ocean sailBOT
#

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

vernal crest
#

What's the difficult part then?

cyan marsh
#

i didn't say hard perse

vernal crest
#

Oh they need to all have the same key

#

Except for a number at the end

cyan marsh
#

the way pathos told me can be done differently

#

lines 3 and 4

#
string store = this.Helper.Translation.Get("stockNameClint");
string action = this.Helper.Translation.Get("stockDecrease");
string reason = this.Helper.Translation.Get("clintFailA");

string mailText = this.Helper.Translation.Get("your-i18n-key", new { Store = store, Action = action, Reason = reason });```
vernal crest
#

Oh you're doing it with C#?

#

Is that because you don't want to use CP?

cyan marsh
#

well.. making a separate money system would be messy in CP

latent mauve
#

SMAPI blocked asset replacement for 'Characters/Dialogue/MarriageDialogueTenko': the 'Tenko Shimura' content pack incorrectly set asset to a null value.

I think this happens if you haven't done a Load to 'create' the MarriageDialogueTenko file yet

cyan marsh
vernal crest
#

Cool :)

crystal yarrow
#

{ "Changes": [ { "LogName": "Characters/Dialogue/tenkoEdit", "Action": "EditData", "Target": "Characters/Dialogue/{{ModId}}_Tenko", "Entries": {

#

this thing

vernal crest
#

It depends how you've set your marriage dialogue file up now

latent mauve
#

That one's for the normal dialogue, the error is about the MarriageDialogue file.

crystal yarrow
# cyan marsh so use t his

miss coriel also mentioned this, so should i remove the changes? im sorry if im making yall repeat yourselves in so lost

sweet sphinx
crystal yarrow
vernal crest
#

You need to either load a blank json file and then use that editdata block to populate it with your keys or you need to load the dialogue file directly. And like fireredlily said you need one for dialogue and one for marriage dialogue.

cyan marsh
sweet sphinx
#

ah (has no understanding of investment/stocks)

cyan marsh
latent mauve
#

So, a JSON file named blank.json that's just {}

crystal yarrow
#

so sorry but how to i do a load? i added the json but then what

cyan marsh
#

The cheaty thing i did with it was to get a loan to buy the CC safe to give me a crystalarium super early

crystal yarrow
latent mauve
#

Don't include the < >

#

So if your mod folder has blank.json in an assets folder inside your mod folder, it'd be "FromFile": "assets/blank.json" for example.

crystal yarrow
#

got it

#

and that goes in the... marriage dialogue json?

#

no the content

#

?

latent mauve
#

However, you're also getting errors about invalid JSON, so, if once again, you only have the entries in your dialogue files without the rest of the EditData action block, you may need to fix that too.

#

I'd put the action block I put above in your content.json just to rule out issues with the actual file failing to load.

crystal yarrow
#

ok let me try this again

#

what was the issue with the upside down sprite?

vernal crest
#

Do you have a size field in your data/characters edit?

cyan marsh
#

it shouldn't need that

crystal yarrow
#

[Content Patcher] Can't apply data patch "Tenko Shimura > NPC Manifestation > assets/Data/Tenko.json > Data/Character edit > entry #1" to Data/Characters: failed converting entry to the expected type 'StardewValley.GameData.Characters.CharacterData': Error converting value {null} to type 'System.Int32'. Path 'KissSpriteIndex'..

#

[Content Patcher] 'Tenko Shimura' has multiple patches with the 'Exclusive' priority which load the 'Characters/Dialogue/MarriageDialogueTenko' asset at the same time (Tenko Shimura > Load Characters/Dialogue/MarriageDialogueTenko, Tenko Shimura > Marriage Dialogue). None will be applied. You should report this to the content pack author.

vernal crest
crystal yarrow
ocean sailBOT
#

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

vernal crest
#

Or their sprites could be in the wrong spot on the sprite sheet

crystal yarrow
#

the sprites were working perfectly fine before. I know i turned the kissing sprite so it would work with the hugs and kisses mod

vernal crest
#

Then it's probably best just to ignore the sprite problem until the obvious issues are sorted

#

Is it okay if I download your mod folder and try to fix it all up and send it back to you?

crystal yarrow
#

i would actually love you forever if you did that because i also have a class in 10 mins

vernal crest
#

Getting advice on it piecemeal like this is stopping you from being able to properly understand the changes that need to be made, I think

#

Okay if you want to send a new copy feel free to otherwise I'll just work off the one that you sent before

crystal yarrow
#

i'll send you a new copy

vernal crest
#

Okay do you want me to dm it to you when I'm done or just ping you with the file?

vernal crest
cyan marsh
#

hmm

#

since SpouseRoom and SpousePatio both use MapSourceRect, can I make a singular model to cover them?

quaint moss
#

How do these keys work specifically? The first three are obvious, but not wanting to see a movie isn't actual standard behavior, right? And I assume the last one covers all of them at once?

sweet sphinx
#

perhaps it's for a disliked or hated movie, #4

quaint moss
#

But by default you CAN invite NPCs to any movie (and the wiki does not say otherwise unless I've overlooked something) so this token gives them the ability to reject them?

sweet sphinx
#

perhaps?

tribal umbra
#

guys i have two mods that edit the same asset, and one is overlapping the other. To fix that i tried to set priority as late (high) in the mod i actually want to edit the asset, but it isn't working. Any help? this is the part i'm trying to edit:

"Changes": [

  {
     "Action": "Load",
     "Target": "Characters/Mariner",
     "FromFile": "assets/Delphine.png",
 "Priority": "High",
     "When":  {
        "Mermaid": "Delphine"
     }
  },
#

i've only put the "priority" part there

#

i got no errors from the json or cp validator except that priority should be set as low, medium or high no early or late

#

after that i edited it to high priority

old edge
#

Hello

brittle pasture
sweet sphinx
#

coool

cyan marsh
#

you cannot load two things at once

vernal crest
#

You can if neither of them have exclusive priority

tribal umbra
#

i know that's why i put priority on the other mod, both mods edit the same asset but priority should fix

#

or the game will load in alphabetical order

vernal crest
#

If you just switch one from a Load to an EditImage and add a false dependency of the other mod in the manifest it will ensure it patches afterwards and will edit the image to what you want

vague acorn
#

hello!
i am actually back from work, and I wanted to start working on an NPC, but the most important part is the portraits.
the problem is that i have no spriting knowledge and i wanted to learn how to do stuff.
do you have some useful resources about how to sprite them well?

tribal umbra
#

well if i'll have that much work i should just delete the asset the other mod is overlapping trought the one i actually want xD

calm nebula
#

!pixelart

ocean sailBOT
#

Where to Start With SDV-Style Pixel Art
If you've never done pixel art before, don't stress! It's easy to pick up the basics - the key is to start small, ask for feedback, and incorporate that into your work.

To start, you'll want an art program. See a list of recommended programs in the !software command.

Here's some good beginner tutorials!
http://pixeljoint.com/forum/forum_posts.asp?TID=11299&PID=139322
https://medium.com/pixel-grimoire/how-to-start-making-pixel-art-2d1e31a5ceab

To start off, try opening an existing portrait and changing the outfit. Start small: edit a shirt pattern, change a jacket collar, or remove a scarf and draw the clothes underneath. Ask for feedback too! The best way to improve is learning how to identify what's wrong and why, so then you can work out how to fix it.

Here's more good tips from the artist of "Celeste":
General pixel art 1: https://www.patreon.com/posts/pixel-art-1-6971422
General pixel art 2: https://www.patreon.com/posts/pixel-art-part-2-11225146
Outlines: https://www.patreon.com/posts/outlines-14106192
Shading: https://www.patreon.com/posts/shading-13869731
Portraits: https://www.patreon.com/posts/portraits-8693396

SDV has a few quirks to remember too:

  • Colour limits: Limit the number of shades you use - stick to six including the outline.
  • Hue shifts: Rather than making shadows and highlights lighter or darker versions of the base tone, SDV shifts the hue too. Eg. a base orange will have yellow highlights and red shadows. This goes for skintones too!
  • Light source: SDV uses a top-right & slightly forward light source - check the vanilla art for reference.
    Most importantly, don't hesitate to ask questions and get advice from people. Have fun!
tribal umbra
#

but i wanted to make the priority thing work bc if i ever make a mod in the future it would be a good thing to know

#

to know how to make it work i mean

vernal crest
#

You're rarely going to be working with opposing Loads when you're making mods

#

Because if it's your own mod's asset then you of course should be loading the asset and if it's not your own mod you should be using EditImage/EditMap/EditData anyway.

tribal umbra
#

i'll have to edit the two mods like that wont i?

vernal crest
#

No, just one mod

#

The one that you want to have the asset from

#

The most you have to do with the other mod is open its manifest file so you can grab its UniqueID for use in the other mod's manifest dependencies section

tribal umbra
#

but you said i should add a false dependency in the other mod manifest, i'll have to edit both then

vernal crest
#

No, you should add a false dependency in the mod you want the asset from

tribal umbra
#

how's that? why would that work?

vernal crest
#

When I said "false dependency of the other mod" I didn't mean "edit the other mod"

#

Okay let's call these mods A and B. You want the asset from mod B, so it needs to patch after mod A.

#

So you edit the manifest of mod B to give it a false dependency on mod A, telling it "you need mod A to work, so make sure you don't load until after mod A does".

#

That ensures that the patches performed by mod B happen after the ones by mod A, so you end up with the mod B asset you wanted.

tribal umbra
#

oh i get it now

#

i'll try that if the editimage doesn't work, thx

#

but why just setting the priority itself isn't working, that is so weird

tiny zealot
#

keep in mind priority overrides false dependency when it comes to patch order

vernal crest
#

What priority are both mods currently using for their Loads?

tribal umbra
#

i'm pretty sure the mod i don't want the asset have none, and the other mod, the one i actually want the asset, uses none too but i've setted priority in one of the actions it have, in the one it edits the mariner asset to replace it

vernal crest
#

If either of them have none specified then they have exclusive which means all other patches for Load are ignored.

#

So if you wanted to go with priority for Load you would need to edit both mods.

#

If both get loaded into the game with a Load of the same asset with no priority specified, they will both have exclusive priority and Content Patcher won't Load either of them.

vernal crest
tribal umbra
#

strange, that's not what is happening, the other mod is overlapping the load and it's asset is the one being used, not the base game asset

tiny zealot
tribal umbra
#

"Action": "Load",
"Target": "Characters/Mariner",
"FromFile": "assets/Mariner.png"
},

vernal crest
#

Ah okay I wasn't sure if the false dependency was totally needed

tribal umbra
#

the other mod is just like that

vernal crest
#

Neither of them should be loading at all given that it's a vanilla asset

#

As in, as far as good mod practice goes the mod author should not have chosen load

tribal umbra
#

but the one i don't want to is the one loading, i just checked

vernal crest
#

And that's even without your added Priority line?

tribal umbra
#

when i remove this mod the other one works fine though

tribal umbra
#

yeah it still doesn't work

#

i'll just delete the other asset file, but i tought i was doing something wrong

#

it worked now even without deleting the other asset. CP validator from wiki said i should define priority as low medium or high but smapi said it should be default, early or late, after doing so and with editimage instead of load it worked fine

#

thx

vague acorn
#

do we have a clear format for the data in Data/Fish.json? like how the fish values are declared

tiny zealot
tiny zealot
#

the difference is: for loads, CP is deciding which patch applies. for edits, it is deciding the order the patches apply

vague acorn
tiny zealot
#

(this is also true in SMAPI/C#; CP uses SMAPI's asset priority values, as one might expect)

tribal umbra
#

this ties everything togheter then

#

thx

knotty phoenix
#

So characters can have their schedules changed when they're married- is there a way I can make it so marrying one character also changes another character's schedule? My two new NPCs are sisters who are inseperable and I want to make it so when you marry one, the other moves in as a roommate

hallow prism
#

changing schedule based on conditions is possible but no, there is no way to make that directly with just CP, because farmhouse is hardcoded

tiny zealot
#

the game is not set up to support this, so good luck. you can change the other character's schedule with conditions but the farmhouse is special, as lumina says

hallow prism
#

you'll need a mod to change the relationship of the other to roommate AND a mod to allow multiple spouse and roommate

#

i suggest rather having the married NPC visit the sister often

#

which is easier in term of code and requirement

knotty phoenix
#

alright, that's kinda what i figured but thought i'd check! Thanks y'all

patent lanceBOT
cyan marsh
#

is WinterStarParticipant a bool?

finite ginkgo
#

It's a GSQ

ivory plume
cyan marsh
#

i am looking at it

#

but it doesn't really say if it's a bool or not

finite ginkgo
#

A game state query

ivory plume
#

(You can click that game state query link in the description for more info about them.)

uncut viper
#

a game state query is always a string. that string can also just happen to be "false" or "true"

cyan marsh
#

that's what i needed

uncut viper
#

(or null if the field accepts nulls)

cyan marsh
#

i didn't know if i should make it a bool or a string

vernal crest
#

It is confusing because it also accepts (at least doesn't complain about) true or false

uncut viper
#

i think Content Patcher is the one that accepts that for you

#

?*

cyan marsh
#

I'm coding to make CP mods... sooo if CP accepts it a string will do

ivory plume
#

(That's because there are actual game state queries named TRUE and FALSE. The names are case-insensitive, and setting it to true is equivalent to "true". Essentially the system was specifically designed to support true/false values in content packs.)

vernal crest
#

@latent mauve pinging you so you can see Pathos's explanation as well.

cyan marsh
#

the GSQ stuff were never clear to me.. DX

vernal crest
#

Thanks Pathos. Some of the GSQ fields in Data/Characters also accept "null" while WinterStarParticipant does not so that was definitely confusing for us lol

latent mauve
#

Thanks for the ping!

ivory plume
#

You can set any game state query field to null to use the default behavior, including WinterStarParticipant. For that field, setting it to null will enable it for NPCs with "HomeRegion": "Town".

uncut viper
#

as long as they are sociable, too

latent mauve
#

Some fields specifically accepted "null" with the quotes, which was the confusion, I think?

vernal crest
#

No I mean several of them don't complain about having a string "null" versus null.

latent mauve
#

Yeah, that ^

ivory plume
#

There's no game state query named NULL, so in theory they should all complain about it. But the warning would only be logged when the game happens to use the field.

vernal crest
#

I can't actually say what their behaviour was because I didn't test that, but they didn't throw any warnings or errors, while WinterStarParticipant did (but only when I was checking the letterbox).

#

I guess the game checks for WinterStarParticipant when you look for mail in case you're getting your winter star letter?

uncut viper
#

(it does)

#

it looks for the %secretsanta command in the letter and replaces it if its there

vernal crest
#

That will be why it waited until then before it complained, and I guess the other ones just didn't complain because I hadn't come across a situation where the game checked for them yet.

uncut viper
#

since you could in theory put that in any letter you want

vernal crest
#

That makes sense of my extremely confusing experience earlier this evening!

uncut viper
#

thats the only reason i know that is because going to look after your confusing experience lol

vernal crest
#

So definitely no "null" in GSQ fields SDVpuffersalute

latent mauve
#

no "null" only null

uncut viper
#

unless a mod adds a GSQ named NULL. hopefully they dont, though

cyan marsh
#

is BreatherChestRect like this? BreatherChestRect: { "X": 0, "Y": 0 }

#

no examples and description has no example

vernal crest
#

I will aSDVpufferbonk them if they do

#

You can check Lacey for an example, that's who I copied

uncut viper
#

its up to me to add a NULL gsq to BETAS that always returns false, just for maximum confusion.

vernal crest
#

I don't have a copy of the breathing stuff after I was absolutely mutilating Hiria and gave up and made her a non-breather lol

ivory plume
cyan marsh
#

I got a rectangle model I can use.. i just needed to see what to do.. it says it's a Point

#

oh i read the wrong one xD

#

probably why i was confuzzled

next plaza
#

For maximum confusion, hack my accounts and put it into spacecore, for a wider reach

uncut viper
#

i can only assume thats your blessing

cyan marsh
#

doesn't space core make creating windows easier?

ivory plume
latent mauve
#

Good note on the rectangle pixel area, I fixed my builder sheet too

cyan marsh
#

in a bit, I will share my Model to see if we synch up

next plaza
devout kindle
#

Hi, does anyone know the item ID for carrot seeds? Im trying to create a new mod that starts with carrot seeds instead of parsnips, I can change parsnips to other items that were <1.6 but not any 1.6 items as the ID's arent available

cyan marsh
latent mauve
#

!itemid

ocean sailBOT
next plaza
#

(Doesn't look like focustense released their framework on Nexus yet, but chu is using it, so there's definitely a way to)

lucid iron
#

so the usable one is the shared project solution

brittle ledge
#

Why aren't the item IDs on the official wiki?

lucid iron
#

that one builds all the classes from stardewui directly into your dll, no mod dependency

latent mauve
#

Even before, the IDs on the wiki were in a linked spreadsheet, right?

lucid iron
#

the wip thing is the mod api solution

devout kindle
lucid iron
#

it's got a fancy markup lang

brittle ledge
#

No, they used to be in the official wiki and then got removed.

latent mauve
#

1.6 uses strings for IDs.

uncut viper
brittle ledge
#

But it's really unclear on what belongs on the official wiki and what doesn't.

next plaza
devout kindle
uncut viper
#

definitely should not be. where are you trying to use it?

latent mauve
#

Sounds like you're using a pre-1.6 tool?

uncut viper
#

even all the old items that still use numbers are still actually strings now

lucid iron
next plaza
cyan marsh
#

I would love to have a way to dump Ids of whatever I want onto a json so I can use them for ||nefarious purposes|| reference

lucid iron
#

cant u just patch export

ivory plume
#

It's an abstract model, so I think Content Patcher would be able to edit an existing entry but not add one? Also not sure if Fashion Sense would correctly register a new item added to that field.

next plaza
devout kindle
latent mauve
#

Ah, case sensitivity errors. Right up there with the missing commas error, we've all done it once. 😛

next plaza
#

But it doesn't actually use the loaded value... maybe it does it elsewhere?

brittle pasture
cyan marsh
#

yeah.. but i want it dumped straight to a file not clog up my console

next plaza
#

(I know I sometimes don't cache custom assets and just load them when used since it isn't frequently... probably should fix that)

next plaza
uncut viper
#

(tbf, so does the vanilla game a lot of the time lol)

devout kindle
#

lol that was what happened after loading it without case.

cyan marsh
brittle pasture
#

it is a JSON file, you can whip up a Python script to parse it and output it as something else

next plaza
cyan marsh
#

I just been real lazy and kinda sad and i am only barely really starting to pick up

#

how should I implement CustomFields in the Model

uncut viper
#

model of what, your script output?

cyan marsh
#

for the NPC Character Data.. how is the Custom Fields Implemented in CP

brittle pasture
#

it's just a dictionary of abitrary string keys to string values

uncut viper
#

custom fields are just string to string dictionaries (mostly)

#

theyre a game thing, not a CP thing

cyan marsh
#

i have no info about them

brittle pasture
#

they do nothing in the base game, however mods can use them to enable their features

uncut viper
#
"CustomFields": {
  "Spiderbuttons.SpecialPowerUtilities/Tab": "{{ModId}}"
}

this is an example of using customfields

#

a string key and a string value

#

you can add any number of key-value pairs to the CustomFields dictionary

cyan marsh
#

and since it's arbituary i don't need to build a model

#

I'll just need to think of a way to save them

uncut viper
#

im not 100% sure what you mean by that

cyan marsh
#

NPC Creator has to be able to recall any data you put in it right?

#

so if you made custom fields for an NPC, you're going to expect not having to rewrite them x3

uncut viper
#

(ive not used it, so i dont know how npc creator works)

brittle pasture
#

I'm unfamiliar with how you're saving/loading your data, but maps/dictionaries is a common data model

cyan marsh
uncut viper
#

i know what it is, just never used it

cyan marsh
#

I am working on it's newest version atm

brittle pasture
#

there is probably something you can use
as for the GUI, maybe an extendable table with two columns, one for key and one for values?

lucid iron
#

say what if you use newtonsoft's json schema builder would that work

cyan marsh
#

<.<

#

it's not a mod

#

it's an independent program x3