#making-mods-general

1 messages Β· Page 591 of 1

void aspen
#

Sorry for confusion

#

Honestly I don't really know what to do with ambient light it kinda doesn't work for me when i need it

toxic topaz
#

yea Gladge feels more like a placebo

brave fable
#

AmbientLight only works for indoor locations

void aspen
#

Isn't there a way to ignore outdoor lighting

orchid glade
#

aw

void aspen
#

As wiki mentions under this property

orchid glade
#

Could you make the map a PIF lol

toxic topaz
#

PIF?

orchid glade
#

personal indoor farm, wouldn't that give you access to indoor location functions? I might be wrong lol

#

it's a wild guess

void aspen
#

Is there any downsides of just marking this map as indoors in properties

orchid glade
#

Oh yeah that's a more reasonable way to try

void aspen
#

Like it's not that bad unless there's something hardcoded

#

Like music or

#

Something else

brave fable
#

IgnoreOutdoorLighting can only be set with C#

#

would be good to see that migrated to a property for 1.6.16 though

#

i'll give it a look

void aspen
#

πŸ˜”

#

You mean the overlay thing?

toxic topaz
#

yea this

void aspen
#

you can do indoorWater T

toxic topaz
#

ill try that

void aspen
#

Map property as well

toxic topaz
#

no...

void aspen
#

That's something

#

Now tone down those colors

#

And we good

toxic topaz
#

thats just coloring though, not obscuring of vision

#

i dont want to do a hackjob with this

void aspen
#

You can make it darker, something like a fog

#

It's something to really play with Ig

#

Tho vignette could do a lot here too if you know how to make it work

toxic topaz
#

yea i can do that

#

i think ill start to work on the soundtrack for this map next, this default desert music kinda ruins the vibe of the area

brave fable
#

well the Woods map does some real zany stuff to get its own ambient lighting to scale with the time of day so simply setting another location to ignore outdoors lighting wouldn't be productive

glossy cargo
#

So apparently, the concept of creating colored crops is stored on the seed, not the crop.
So when I randomize which crop comes from which seed, Whatever crop comes from a flower seed, ends up a colored crop

stoic chasm
#

Hello peopleee. I am still having trouble with my house interior- I've tried to change things but it didn't work. I ran it through a map fixer and it still doesn't load. I have no clue what I'm doing wrong (knowing me it's probably something extremely simple that I just missed or can't understand). https://smapi.io/log/faa1da69ff214f48a44b6cf8e5e1e3b2 Any help would be extremely appreciated SDVpufferchickcry

ocean sailBOT
#

Log Info: SMAPI 4.5.2 with SDV 1.6.15 build 24356 on Windows 11 (10.0.26100.0), with 21 C# mods and 8 content packs.

loud sandal
# stoic chasm Hello peopleee. I am still having trouble with my house interior- I've tried to ...

Are you able to load up your .tmx file in a code editor, like VSCode? You need to find lumi_towninterior_fronttiles and remove the file path and make sure your mod is listing lumi's mod as a dependency since you aren't using their tilesheet for your mod, but rather your mod is depending on their mod for the tilesheet to load. Usually when someone makes a map, I often see them use another modders tilesheet but forget to remove the file path.

marsh reef
# stoic chasm Hello peopleee. I am still having trouble with my house interior- I've tried to ...

"Surprise Everything Gift loaded map 'assets\Maps' with invalid tilesheet path 'lumi_towninterior_fronttiles'. The tilesheet couldn't be found relative to either the map file or the game's content folder."
"SMAPI blocked asset replacement for 'Maps/Kandie.SurpriseEverythingGift_InteriorOfKandiesHouse': the 'Surprise Everything Gift' content pack incorrectly set asset to a null value."
"Couldn't create the 'Kandie.SurpriseEverythingGift_KandiesHouse' location. Is its data in Data/Locations invalid?"

imporant lines of the log

stoic chasm
marsh reef
#

bc if that works then your only issue would be how you're having it get that tilesheet

stoic chasm
stoic chasm
#

Ooh ok

loud sandal
#

Yeah put it next to the tmx file

stoic chasm
#

Alrighty

ocean sailBOT
#

Log Info: SMAPI 4.5.2 with SDV 1.6.15 build 24356 on Windows 11 (10.0.26100.0), with 21 C# mods and 8 content packs.

marsh reef
#

wait

#

🀣 why bro got a kissing mod

#

anyway

marsh reef
loud sandal
#

Yeah looks like it resolved the other error and moved onto the next, so it would be to do with how the tilesheets are setup

marsh reef
#

how many tilesheets did you borrow from, not the location of your map πŸ€”

#

oh true howd you set em up?

stoic chasm
#

I can't remember, I'm sorry

loud sandal
stoic chasm
#

Yes I can

marsh reef
#

xan is there a smapi log share for tmx files?

loud sandal
loud sandal
# stoic chasm Yes I can

Are you able to do that and do a search for one of these tilesheets and see if it has a file path?

stoic chasm
#

Yeah

#

Give me a moment

#

What would that look like?

marsh reef
stoic chasm
#

Oh ok

loud sandal
#

Yeah that's right

#

Search for "png"

stoic chasm
#

I found the

#

*them

marsh reef
#

πŸ‘€

stoic chasm
#

What do I do now?

marsh reef
#

🀣 show us

loud sandal
#

Can you copy paste one of the lines?

#

the image source line like Burrito picture

stoic chasm
#

ooh

#

Sorry

#

Would it be easier if I sent a photo? OR just copy paste it?

brave fable
#

it's never acceptable to send a screenshot of text πŸ‘

loud sandal
stoic chasm
#

Okie dokie

#

<image source="lumi_towninterior_fronttiles.png" width="400" height="2192"/>

#

Like that?

loud sandal
#

Yup, and that looks correct as well

marsh reef
#

πŸ™‚β€β†•οΈ idk what this means, seems important and blueberry could help, its missing specifically the tilesheet, not the file for it

#

the tilesheet is set up in what i would imagine is effectively limbo

#

you're using it obviously but the game and mod cant find it

loud sandal
#

Next step would be to look at the JSON for how the map is loaded

stoic chasm
#

Okay

#

What should I look for?

loud sandal
stoic chasm
#

Oh ok

#

What do I do when I've found that?

loud sandal
stoic chasm
#

Oh oki. I'll do that

loud sandal
stoic chasm
#

I'm not sure

#

Is it?

loud sandal
#

Your folders will tell you, check your assets folder that holds all of this

#

Make sure your folder paths are correct.

stoic chasm
#

Okay I checked. It is uppercased. Should I change it?

marsh reef
#

ye

loud sandal
#

You should make sure all your coding reflects the file paths exactly

stoic chasm
#

Okie dokie

loud sandal
#

You have a lot of lines with lower case

marsh reef
#

you have the exterior capitalized right though so i imagine that's why it's there πŸ™‚β€β†•οΈ

stoic chasm
#

Ooh ok

#

I'll go change those

#

Should I load the game to see if it works afterwards?

loud sandal
#

Yeah test it after making those changes

stoic chasm
#

Okie dokie

#

It didn't work. I still can't enter the house

marsh reef
#

log :3

stoic chasm
#

Give me a second, my father needs me. Sorryyyy

marsh reef
#

dw bro

loud sandal
marsh reef
#

log and possibly json

#

please

marsh reef
stoic chasm
#

What should I do, then?

marsh reef
#

is it a c# mod?

#

and the log is win+r "%appdata%" (or find it urself in user), roaming, stardewvalley, errorlogs

#

oooo :3 i cannot help you, @brave fable do you know c# or who would be able to help with this?

#

lowkey might wanna see if you can find anything online and if not sleep on it see if anyone replies in the morning πŸ˜…

loud sandal
#

Yeah as much I would like to help I need to hop off the PC soon, but could point you in the right direction @neon gyro

#

Ok, and you've done all of this as a SMAPI C# mod not any content patcher or any frameworks or anything else along with it?

#

Have you made mods using C# before? Or is this your first time?

#

Ok that's awesome you're giving it a go! So without seeing your code it's hard to know the exact issue, but I assume you're trying to add a wolf like a monster?

fossil osprey
#

Be careful with YouTube tutorials, they get obsolete very quickly

loud sandal
#

I see, so it might be a good idea to go into this with one specific goal, and if you want to put your Wolf into the game, you'll need to decide how it will be in the game and to what capacity. I think focusing on it being a monster would be best, but it will be a bit hard. There have been users asking for a custom monster framework, I've looking into it and the scope is quite large and I haven't got the time sadly.

#

Ok you could have it spawn like a creature? I could suggest Nature In The Valley, but I would be biased since I use it myself for my mods πŸ˜…

#

There is also the option of having it like a companion or trinket, there's framework for that as well.

#

It's a framework that allows you to create something much like what you want, and they spawn in the maps, and you catch them with a net.

#

No problem! If you need help with Nature In The Valley or Trinket Tinker type mods, you can find me, same name, on Nexus and pm me

#

Trinket Tinker is good if you want the wolf to follow you around and use abilities.

#

And these only require content patcher and their framework, you don't need any C# so it would be a bit easier to start with too

#

The mod frameworks I recommended

#

The files you mentioned for your C# mod are fine and quite normal for what is required. It does depend on how they are coded of course. Also, to append your wolf to the usual vanilla spawning pool, you might need to use Harmony.

#

This isn't too bad at all actually, I think your main concern in this file would be the getRandomTile because you really want to make sure you can find a valid spawn tile first.

#

Sometimes tiles can be invalid

#

Ok so basically, doing something like Vector2 spawnTile = location.getRandomTile(Game1.random); is like saying, give me any tile for this location.
So instead of just doing that, you do this:

  • Pick a random tile
  • Check if the tile is valid
  • if it isn't, try another one
  • keep going until a valid one is found
#

So you'll want to do something like for (int i = 0; i < 30; i++)
Try doing this process up to 30 times

#

and in that, you'll want to do your getRandomTile, then if the tile is a location on the map, if the location is clear/valid, if it is not too close to the player etc,

#

if all of these things pass, then use that tile, otherwise skip and try again

#

Your spawn error may be related to something else in your wolf.cs but this makes your spawning safer.

#

No problem πŸ™‚

#

I see now, yeah that's where you crash is happening.
You are trying to build a wolf but before your wolf code starts, Stardew is trying to load the monster info for 'wolf' and it can't find it and it crashes.

#

I think remove this line:
var monsterData = Game1.content.Load<Dictionary<string, string>>("Data\\Monsters");

#

at least for now

#

and simplify it

#

instead put it's values like health, maxhealth, damagetofarmer etc.

#

Yeah keep it simple and see how it goes

#

You could do something like just this:
public Wolf(Vector2 position)
: base("Wolf", position)
{
Health = 50;
MaxHealth = 50;
DamageToFarmer = 7;
}

#

And then expand from there

#

I am not looking at it in my VSCode atm, but yes it looks like it

#

I am getting ready to head home from my PC lol

#

So I am out of time I'm afraid lol

#

You've got a good handle on it though, just keep at it πŸ™‚

#

Goodluck!

stoic chasm
#

Okay sooo- I managed to get the map to actually load (I just copied the tilesheet things I was using into the map folder. I'm not gonna keep them there, I just did it so I could test to make sure everything worked.) But it seems like something went wrong-? I mean, I can walk around the house and everything but-

hard fern
stoic chasm
#

That's what I figured. Is there anyway to fix it?

void aspen
#

You probably moved the layer in Tiled which isn't supported by SDV

#

You have to move it back to match the game positions and then crop everything out and paste to the right place

stoic chasm
#

Dang, alrighty then

void aspen
#

Is that a Front layer?

stoic chasm
#

Yeah

void aspen
#

Just click on it in Tiled menu and then press M and move it two tiles up

#

Then press ctrl a, ctrl x, ctrl v and put it in the right position

#

This way you move tiles and not the layer

stoic chasm
#

Oh okie dokie. Thank youu

lost moon
#

i make translations for some mode but when i enter the game translate not working i cant understand why anyone can help me?

barren tapir
#

I don't have access to my laptop atm so I can't look for it rn. But does anyone know how'd you add support for putting hats on an item similar to the alien rarecrow?

royal stump
#

probably patch checkForAction and draw on the object's class, and store the hat in a custom modData field; you could use preservedParentSheetIndex like scarecrows do, but that might conflict with some object types

#

and doesn't preserve any info that a string in modData wouldn't, anyway

severe cairn
#

I havent played since forever, any updates about what mods HD portraits need? Last I checked only portraiture was widely used, curious on what changed

ornate trellis
#

spacecore too, me thinks

strong kite
#

I honestly really hope the issues I found for SpaceCore get fixed or even just acknowledged before my mod is ready to release. They've been up on Github for about a week but there hasn't been any activity yet

#

For the time being I might just need to lower the speed debuff for my debuff to 1, so it then gets doubled to 2. Cuz -4 speed is WAY too big of a downside 😭

#

And hopefully it's not something stupid on my end that's causing the effects to double HehSweatCloseup

ornate trellis
#

they're looked at, don't worry. Casey is just busy.

strong kite
#

Alrighty

ornate trellis
#

im sitting in a similar boat with a diff spacecore issue, hoping it'll get fixed lol

strong kite
#

Btw I'm not too familiar with GitHub, am I able to give my posts the Bug tag or does Casey have to do it themselves?

ornate trellis
#

im sadly not too knowledgeable bout github either, sorry

strong kite
#

Ah, alright no worries!

royal stump
#

if you want to try, the labels thing on the right sidebar looks like this when you're allowed

#

not sure what github's default rules are for those either, though

#

ah, supposedly it's for people with repo permissions only

strong kite
#

Dang, alright

tender bloom
barren tapir
void aspen
#

oh, ase supports .ico

#

I can make bunch of sdv themed desktop icons

wanton pine
#

Questions:
a) is designating this map as a cellar instead of a general location causing the player to warp to the farmhouse entryway upon exiting it, regardless of the warps I made for it?
b) if I change it to a regular location, how would I add cellar (cask) functionality to it?

the relevant content.json excerpt:

{
    "Action": "EditData",
    "Target": "Data/Locations",
    "Entries": {
    "{{ModID}}_GreenhouseCellar": {
        "CreateOnLoad": {
        "MapPath": "Maps/{{ModID}}_GreenhouseCellar",
        "Type": "StardewValley.Locations.Cellar"
        }
    }
    }
},
uncut viper
#

Cellar type locations are hardcoded to have every warp lead to the farmhouse yes

#

You can add the map property CanCaskHere for non-cellar locations

wanton pine
#

so "property": "cancaskhere" (with the proper coding grammar) would do this? or would it be "addproperty": ?

uncut viper
#

I don't know. CP's EditMap documentation would say. Or just add it in the tmx itself

wanton pine
#

For others: it's "mapproperties"

wanton pine
#

Okay, how do I fix my mod's CP errors? They are mostly related to a pair of map patches that add a seasonal background behind transparent greenhouse glass. The mod's name is "Greenhouse with Orangery and Cellar for SVE", aka "GOCSVE".
I'm pretty sure the error: game issue is a case of updating one section of code to match another.
(Yes, I need to update/replace some other mods; however, they are not the root of this problem.)
https://smapi.io/log/9620d424c48e4d9eac02cbe3413f0edf

ocean sailBOT
#

Log Info: SMAPI 4.5.2 with SDV 1.6.15 build 24356 on Windows 11 (10.0.26200.0), with 44 C# mods and 41 content packs.
Suggested fixes: One or more mods are out of date, consider updating them

ocean sailBOT
#

When creating or editing maps in Tiled, one common error is tilesheet climbing, marked by red text containing "invalid tilesheet path '../../..'. This is caused by SMAPI not being able to find the tilesheets needed by the map file. To prevent this error, make sure that you have a copy of all necessary tilesheets in the folder containing your WIP tmx file. Copies of vanilla tilesheets can later be deleted, but must be present while working on your map.

If you get this error with a completed map, an easy way to fix it is to open your tmx file in VS Code or a similar text editor, find all of the places with <image source=, and remove the filepaths to so that only the tilesheet names remain. For example, if the code says <image source="Content (unpacked)/Maps/townInterior_2" width="512" height="64"/>, change it to just <image source="townInterior_2" width="512" height="64"/>.

uncut viper
#

I would also recommend Tilesheetinator if you're not already using it

wanton pine
#

Um. How does that butt into this:
(I know that three of the seasonal maps are absent. That will change once I get the other problems ironed out.)

#

And yes, I use tilesheetinator.

stable dragon
#

I forgot in which mod she was

#

someone know maybe?

wanton pine
#

joja clerks

#

I think

patent lanceBOT
#

@torpid sparrow: look at closedmessage stuff (18h ago)

torpid sparrow
#

oh fuck

#

i frogot i was gonna do that

#

Remind me to look at closedmessage stuff in 6 hours

patent lanceBOT
#

il smack ye upside the ead strawhatwem i sware on me mum. but ok just this once mate (#7148470) (6h | <t:1776382005>)

mellow laurel
royal stump
# wanton pine And yes, I use tilesheetinator.

I'm not familiar with how to use it personally, but at a glance, it sounds like you'd use the plugin's "set vanilla maps folder" and then "fix missing tilesheets" options, then save the map again.

The affected CP entry is this one: Greenhouse with Orangery and Cellar for SVE > EditMap Maps/Greenhouse #3. It's apparently loading a map just called assets , and that was edited while spring_outdoorsTileSheet wasn't in the same folder as it.

Tilesheetinator apparently works around the issue, but it's what tilesheet climbing errors are about: every tilesheet image needs to be in the same folder while editing a map file, or Tiled adds relative folder directions that don't work in SDV.

royal stump
#

(oh, and the #4 greenhouse edit too)

wanton pine
royal stump
#

I'm not sure why the log's saying that, but I can take a look if you upload the content file they're in https://smapi.io/json

void aspen
#

never in my life ive seen so many tsx in a mod folder 😭

royal stump
#

there may be an edit with "Target": "asset" by accident, from the sound of it, but sometimes errors get offset by weird issues

toxic topaz
#

yay got the debuff working PepeHappy

void aspen
#

damn I wanna make some too

#

with custom icons as well

toxic topaz
#

the icons are fun to make

royal stump
latent mauve
#

I think the map called assets in that error might be referring to the tilesheet name/ID?

#

Could absolutely be wrong but that's the only thing I can think of

wanton pine
ocean sailBOT
#

Log Info: SMAPI 4.5.2 with SDV 1.6.15 build 24356 on Windows 11 (10.0.26200.0), with 44 C# mods and 41 content packs.
Suggested fixes: One or more mods are out of date, consider updating them

scenic ferry
#

Forage clarification question here: When it says "the game
combines this list with any forage in the Default location entry;
adds every forage entry whose Condition and Season match to a spawn pool;"
Does that mean, in making custom forage for my Glade location, other "regular" seasonal forage will spawn? (Daffodiles, leeks, etc)? Or does this just explain how it pulls from the list I provide?

#

i would rather my location only spawn my own forage but if thats gonna get complicated it is not a big deal to me lol
I just havent tested it myself because I still need to make the sprites for my custom forageables

#

could use placeholders too though ig and just test it myself

brittle pasture
#

I believe you're correct
if you just want your forage you can use FTM/SpaceCore and disable vanilla forage spawns

toxic topaz
#

does anyone have any idea how i could have like sandy particles fall off of my character when the debuff i made is active?

scenic ferry
#

alas, my stubbornness makes me want to avoid dependancies as much as I reasonably can
Ill test it out a bit, i can also just fumble around with the spawn chance and see if I can weigh it out to mostly be my own

ornate trellis
#

tbh ive been wondering myself...so far i havent seen any default vanilla forage spawn on my maps(besides the ones I put in myself) so it just left me even more confused

latent mauve
brittle pasture
#

on a second check it seems like the Default location doesnt actually have any forage added

#

so it seems using the vanilla forage feature is fine

latent mauve
#

Skylark, If you have and it's still erroring, I can walk you through how to check the TMX in a text/code editor for the directory climbing if that helps? I usually fix mine that way rather than trying to re-link them through Tiled.

wanton pine
#

complete reopening. Hm - I think I forgot to to fix the cellar tilesheets, but that doesn't explain why #3 and #4 still aren't working in-game..

latent mauve
#

Also, do you know if you're embedding your tilesheets?

#

the embed shouldn't necessarily matter here unless you aren't and then the issue might be in your TSX file instead

calm nebula
#

You can also edit all of the Default to exclude your maps

#

Izh

uncut viper
ornate trellis
calm nebula
#

Oh maybe I'm thinking fishies

wanton pine
royal stump
#

"StardewValley.Locations" isn't a type

#

(that or it should be "StardewValley.Locations.Cellar", if that was the plan, I lost track a bit)

latent mauve
# wanton pine No idea. looking up how to tell.

alright, well, in case you're curious, I've gone ahead and opened up one of my working TMX files inside Visual Studio Code and screencapped it so you can see what a vanilla + modded entry with a custom tilesheet looks like:

#

highlighted the relevant bits

#

Vanilla doesn't use the file extension, but my custom one does, and it works fine. The important part is that there are no directories before the image source file's name.

wanton pine
#

.Locations changed to .GameLocation

#

Just to confirm: the ones without the - black keyboardsmashing(?) are what I should be seeing.

latent mauve
#

the sceenshot with the image source and not the layer names is the right section to look at, yep

#

That said, I am baffled by that first screenshot, I've never seen one with compression values like that in an unpacked TMX. xD

wanton pine
#

TBH I included the other one only because the strings of apparent nonsense are a bit alarming.

uncut viper
#

It's just compressed data

valid folio
#

Hi! Does anyone know the name of the sound that plays when the player puts an egg into the mayonnaise machine or milk into the cheese press?

latent mauve
royal stump
#

e.g. my HTML editor for FTM has ore icons like this

wanton pine
#

And now I know a) it's completely fine and b) not to touch it.

uncut viper
#

In this case it's just compressed tiles

#

Not images

#

Like instead of the big block of 0,0,0,1,53,0,0,1,0 etc you see

valid folio
royal stump
#

yeah, my first impression was image but the layers don't work that way

uncut viper
#

You can even change it to XML instead of base64 or CSV if you want. It's ugly though

latent mauve
calm nebula
#

It should be in DatA/machines

wanton pine
latent mauve
#

Most of the machines tend to use Ship for the "load item" noise, there's only a few exceptions that I saw on a brief check

wanton pine
#

Hm. Well, all but one of my applicable tilesheets are embedded, and the one exception is not showing up in the tmx code.

valid folio
latent mauve
#

(I did confirm in Data/Machines that it is in fact Ship)

thorny glacier
#

Hey. Has anyone been able to get underscore76/TASMod1.6 working? It looks like I'm messing up the installation somehow, and all the Stardew APIs are coming up as null.

My experience with dev is mostly typescript, so I'm no doubt messing up in a really basic way

#

I'm looking to automate a play through, and underscores vids are fun example I want to replicate

#

I have installed the nuget package, but I don't know how to check to see if it is in the build

brittle pasture
#

I believe @vestal thorn is the author

thorny glacier
#

Hah, they are, didn't realise they are here

uncut viper
#

(Or you can just embed it)

latent mauve
#

Yep, earlier when I asked if they were embedded it was because any not embedded are looking for a TSX file

#

And the TSX file can ALSO have directory-climbing tilesheet paths to be fixed.

rich seal
#

I both love and hate making custom fish. Love because I can make silly crap pop out of the water. Hate because I'm detail-oriented and want everything covered; fish item, fish difficulty, fish location, fish pond, roe, aquarium, and anything else relevant. So time consuming just for one fish, and I have like 20+ ideas I want to implement. Thank god I have templates from prior experimenting lol

rich seal
#

I did put notes just in case anyone needed to use my mod (for some god forsaken reason) as a template, so hopefully it helps you in some way

autumn tide
#

you can... hatch... jas?

rich seal
#

Not Jas. That's a jacken

#

Two totally different things.

autumn tide
#

..I see

rich seal
#

Everything in that mod was a spur of the moment "haha what if" thing. Don't question it, even I don't have the answers lol

autumn tide
#

that's just the modding process

jaunty shuttle
#

We're stealing hat mouse's children now eh?

rich seal
#

Not stealing; creating. 100% entirely artificial with zero artificial additives.

jaunty shuttle
rich seal
#

That made absolutely no sense, but neither does my mod so whatever lol

autumn tide
#

no artificial hat mouse babies here

#

all-natural, sugar free

rich seal
#

I do want to make an Alternative Textures addon for my mod though. Give my critters some extra skins and whatnot. Need to learn how to do that for modded stuff. After I make more fish.

#

||fun fact; I originally had a tiny mutant Lewis as a coop animal. Scrapped him though||

placid plinth
#

so for a long time I wanted to start making a mod for sdv, so i started investigating but there is something i have not clear yet

#

what are the limits of content patcher?

#

because I read that content patcher was for simpler things

#

but also I read that it started admiting more complex things

wispy bramble
jaunty shuttle
#

The limits of what you can do with CP are very very large, it simply cannot be summed in words. There are also other frameworks to do things that CP can't, that work in the same way as you would use CP (json editing).

That said, if you can tell us what you're wanting to make, we can tell you whether it's doable with CP or not (or possible with another framework)

placid plinth
wanton pine
latent mauve
#

I usually do those changes in the code-editor so I don't have to fight with Tiled-- there's some weirdness where if all you do is click the embed button, it won't update properly. So you usually have to embed it, change a tile, save, change tile back, save again.

#

Here's an example of me fixing someone else's from the code editor previously if you are comfortable with that method: #making-mods-general message

latent mauve
#

(it's easier if it's a tilesheet from a vanilla tileset, because you can just open any vanilla TMX that has them and copy the tilewidth and height data from there.)

wanton pine
#

how do you get the firstgid number?

latent mauve
#

the firstgid number is set by Tiled when you add a tilesheet, embedded or otherwise, you never want to change that inside the code from what it was originally in your sheet or you might get an invalid GID error.

wanton pine
#

hm.

latent mauve
#

Mine may have changed slightly in the example I posted because they had zeroed out tilesheets with no tile count (tilesheets that appeared completely empty when opened in Tiled)

#

Did embedding them in Tiled do anything?

#

"Every tileset has its own, independent local tile IDs, typically (but not always) starting at 0. To avoid conflicts within maps using multiple tilesets, GIDs are assigned in sequence based on the size of each tileset. Each tileset is assigned a firstgid within the map, this is the GID that the tile with local ID 0 in the tileset would have."

#

^ how Tiled determines the GID if it's needed

uncut viper
#

(editors note: the GIDs may not actually be in sequence in the layer itself if you start rotating/mirroring/flipping your tiles)

latent mauve
#

(thanks Button!)

uncut viper
#

(in case you ever wonder why sometimes a .tmx has like, 2336587 as a tile ID for some reason... thats why)

latent mauve
#

this is honestly pretty well documented

wanton pine
#

is this phrasing correct?
</tileset>
<tileset firstgid="###" name="z_GlassPanels" tilewidth="16" tileheight="15" tilecount="16" columns="4">
<image source="GlassPanels.png" width="64" height="64"/>

calm nebula
#

Button js it a bitmask

wanton pine
#

obviously ### is a placeholder

calm nebula
#

It looked bitmask but I didn't do math

#

For rotation flip

wanton pine
uncut viper
# calm nebula Button js it a bitmask

the first 4 bits of the ID number determine the flipping and rotating and should be cleared/handled/ignored when reading the id if you count that as a bitmask

#

you should not be manually calculating your own gids

#

you shouldnt be touching anything about the gids or ids or tilecounts etc
if you embed them Tiled does all that for you. at most you should only ever need to touch the image source

#

(You do need to actually make sure the map is saved after you embed)

latent mauve
#

Nothing should need to be manually written out or calculated, yeah. It's either only touch image source or info copy/pasted from a working source.

latent mauve
wanton pine
#

typo!

rancid vortex
#

How would I make a character speak in small text in an event script?

#

like they're murmering under their breath

latent mauve
#

I think most events just use the speech bubbles / text above head for that?

#

See Robin's "Hmph" from the initial farmhouse scene after she's called out by Lewis for calling your house crusty to get you to buy an upgrade.

wanton pine
#

Suggestion: preface it with (aside) as per Shakespeare's play directions if you don't want to do that and can't adjust the text size?

#

or (under their breath)

wanton pine
#

so it's throwing errors when all the tilesheets are as they should be.

latent mauve
#

send me the TMX?

rancid vortex
#

Thank you

latent mauve
#

also the new log preferably

ocean sailBOT
#

Log Info: SMAPI 4.5.2 with SDV 1.6.15 build 24356 on Windows 11 (10.0.26200.0), with 44 C# mods and 41 content packs.
Suggested fixes: One or more mods are out of date, consider updating them

latent mauve
#

okay, so the image source for z_outdoorsTileSheet was still directory climbing in GreenhouseBackdrop_spring.tmx

wanton pine
#

of course it was. Thank you!

latent mauve
#

(line 98/99 in the TMX)

vestal thorn
wanton pine
#

it needs to be <image source="spring_outdoorsTileSheet.png" width="400" height="1264"/> , right?

latent mauve
#

yeah, you're just removing all the /.../ stuff before spring_outdoorsTileSheet.png

#

also your z_spring_Shadows are still an unembedded TSX in GreenhouseBackdrop_spring, so check the image source in that TSX file if you have a separate/custom one included in your mod, and if not, embed it.

wanton pine
#

those have been removed because I'm not sure I need to use them - I'm undecided on if it's worth adding tree shadows to a seasonal greenhouse backdrop.

latent mauve
#

okay, please note that if you remove a tileset in Tiled, you'll need to do the same change a tile, save, change tile back, save again trick to update it

#

removing tilesets will shift all the subsequent GID values down, so you have to do it that way to remove tilesets safely

wanton pine
#

it was unused, but I'll add that to my tiled notes doc.

latent mauve
#

It's also the last one in your tmx, so it's less of an issue, but just good general knowledge

wanton pine
#

It isn't throwing errors anymore but the backdrop still isn't showing up!

#

Back to the CP github with me! πŸšΆβ€βž‘οΈ

#

hmm... do I need to use replacebylayer instead of overlay?

#

testing

#

it will actually be the other way around.

thorny glacier
wanton pine
#

Nope! SDVpuffermad

#

y u no work, code?!
//seasonal greenhouse backdrops
{
"Action": "EditMap",
"Target": "Maps/Greenhouse",
"FromFile": "assets/{{ModID}}GreenhouseBackdrop{{season}}.tmx",
"FromArea": { "X": 0, "Y": 0, "Width": 35, "Height": 6 },
"ToArea": { "X": 0, "Y": 1, "Width": 35, "Height": 6 },
"PatchMode": "Overlay"
},
{
"Action": "EditMap",
"Target": "Maps/Greenhouse",
"FromFile": "assets/{{ModID}}GreenhouseBackdrop{{season}}.tmx",
"FromArea": { "X": 0, "Y": 2, "Width": 35, "Height": 6 },
"ToArea": { "X": 0, "Y": 36, "Width": 35, "Height": 6 },
"PatchMode": "Overlay"
},

#

(ReplaceByLayer doesn't work, either.)

#

ugh. I'm going to eat before dealing with this.

verbal glacier
#

i believe you might be missing two underscores for the .tmx

latent mauve
#

They are there but because he didn't put it in back ticks, Discord made them italicize text instead

verbal glacier
#

ah

#

i tend to forget that happens that way

latent mauve
#

(I would suggest a: a patch summary and b: adding a priority in case some other mod is overtaking it)

calm nebula
#

(patch export also exists)

latent mauve
#

(this is also a good idea)

keen ivy
#

Silly question and let me know if I should ask in a different channel.

I use Gwen’s medieval buildings with content patcher and it changes Lewis’s truck to be a wagon.

This was like fine, except for when I started using Coal Point Farm, where one of the characters is working on Lewis’s truck frequently, once you fix the bus. Given that his truck is now a wagon in Gwen’s Medieval, it looks… off.

There isn’t a configuration in her mod to disable the truck alone.

The only thing I can think to do is edit the art in the file and replace it with the truck from earthy stardew valley for personal use, but genuinely can’t think of anything easier I can do to fix it.

Thoughts?

lucid iron
#

The truck is probably an EditMap inside coal point

#

You can try looking for it and commenting it out

keen ivy
#

That’s the thing- there is no truck- it’s a character on a platform that’s made to look like it’s under a truck?

#

But because there’s no truck it just makes it look like he’s half cut off laying in front of a wagon

#

I can send a picture in a bit when I get home

#

I would prefer to have the truck instead of the wagon as the solution I just don’t know how to go about making that happen

lucid iron
#

Ah I see you are thinking of a schedule animation maybe?

keen ivy
#

Yeah! It’s a schedule animation

dim pumice
lucid iron
#

Yeah then if u wanna art u gotta go edit the pngs

keen ivy
lucid iron
#

You are able to make this a content patcher mod if you wish to share it with others

#

But it's ok if u just go change the png as is for personal use

keen ivy
#

That’s true, it would be compatibility fix between the two if I could manage a content patcher mod

#

I’ll look into it; thank you for your help!

limber patio
#

does anyone know if it's possible to have the farmer swing a specific weapon in an event?

wanton pine
latent mauve
wanton pine
#

so all of the layers in the backdrop tmx are background 1 , etc, and in the greenhouse map there are corresponding empty layers with the same names under the other ones.

#

so they should be being effected when CP replacebylayer's them

#

...is the issue that the backdrop also needs dummy layers?

west tundra
#

Hello community, I was wondering if anyone can point me towards places where I might be able to commission a coding wizard to help me fix my existing portrait mod. Because I have zero idea on what I'm doing for this update, I refuse to use AI, and would love to pay someone to help me make some fixes.

lucid iron
#

!commissions

ocean sailBOT
west tundra
#

Sick, thank you

lucid iron
#

But a portrait mod is easy to make (art aside)

west tundra
#

I have all the art down

lucid iron
#

You can try it yourself

west tundra
#

Its the coding, since it's for Lance from SVE

latent mauve
#

So to cover it, your tiles also need to be on the Buildings layer or Buildings2, etc.

lucid iron
#

It's not really different for him, still doing editimage stuff basically

west tundra
#

I mean, I already have the code working, but there are some really weird things I need to fix since Flash placed Lance sprites all over the place. My new sprites do not overlap with the old ones, so I can't overlay

#

And I don't want to mess with people's recolors

lucid iron
#

Hm why wouldn't your's overlap

west tundra
#

Because my sprite's hair is a bit different lol

#

A lot less spiky

latent mauve
#

What do you mean by them being placed all over the place?

lucid iron
#

Oh i see i thought you meant frames

#

You can just replace instead of overlay

west tundra
#

Ah, so there are like six different tile files with stray Lance sprites

wanton pine
#

!modder's pie

lucid iron
#

If u wanna get fancy use the mask feature added in 2.9

west tundra
#

I am not at all competent in coding, I made this mod a year ago and I'm finding that people are getting the OG sprites for certain events

#

But I have an update for the portraits, I just want to get the random things dialed in if that makes sense

#

I did replace the sprites, on those tilesheets, but I don't think I have the callouts right. Beyond that, all the sprites are on big tilesheets which would change people's recolors of SVE. I think? I'm not sure what I'm doing haha

lucid iron
#

You'd have to get more info from people who's encountering the bugs like which exact event

#

For editing big images you can use ToArea

west tundra
#

Thanks, I'll make a note of that

latent mauve
#

The new Mask feature added in Content Patcher 2.9.0 allows you to target specific sections of a sprite sheet to remove so you can follow up with an Overlay for only those you want to change.

#

(helpful if your new sprite is smaller than the original or covers less pixels in spots)

west tundra
#

Thank you both for taking the time to explain!

#

Yeah my sprites are on the left, when I last did a comparison

#

Thank you guys for the direction!

wanton pine
latent mauve
#

Yeah, you can't have Layers named Backdrop, they will not be found

#

The only acceptable layer names are:

  • Back
  • Buildings
  • Paths
  • Front
  • Always Front
  • And the above names with numbers (negative or positive) following them to denote draw order.
wanton pine
#

Why do I never find things like this until after I've screwed up? (rhetorical)

#

Before & after renaming

#

as you can see, I still have some mistakes to fix....

latent mauve
#

yep, just some framing to issues fix

#

some of those just need to move back another draw layer or two

wanton pine
#

Now, figuring out how to add day/night lighting and what I want to do with the clutter.
Also, if I'm using my custom greenhouse clutter tilesheet (assembled from Nexus tilesheets, with a good deal of my own modifications) in Tiled or making a furniture CP for it so I can redecorate....

#

On that note, how would I credit the other pixelsmiths whose work I assembled, as such a tilesheet cannot take the normal dependency route?

uncut viper
#

Well first do you have permission to use edited versions of them

latent mauve
#

(if you don't, and their mod page doesn't grant permission, then you can't publish the mod, but it's fine for a personal edit)

uncut viper
#

(And to be extra clear, there is very much a difference between tilesheets made for mod authors to use, and tilesheets made for mod authors to use and modify)

latent mauve
#

If you're using their unmodified tilesheets in your map and it's a tilesheet mod/resource, then that's fine to have a dependency set. The modifying is where it gets trickier.

wanton pine
#

The other part of it is that I have no idea how I'd even phrase that ask! The other part is that because of the permissions issue, any version uploaded to Nexus would either use towninterior clutter or be a blank slate.

Importantly, however, my edits are overall pretty small - mostly just recolors and second versions of the long-handled tools so you can have them hanging on the wall or leaning up against it. (Barring my unified defaultwood HxW bakery tileset, which is a whole different kettle of fish that is very unlikely to ever see public distribution.)

uncut viper
#

Tilesheet mods uploaded to Nexus are generally posted with the intent for mod authors to use them, and it is possible to both use them and upload your mod that uses them without actually including their tilesheets in your download

Any edits on the other hand, however small they are, would need to be asked about unless the mod page specifically says you can modify their files

latent mauve
#

I've gotten permission to use parts of HxW tiles for custom things in the past, so there is no harm in asking for your specific use case! But I did force the dependency as a requirement of my mod just to be safe.

uncut viper
#

(Likewise with the unified sheet, since that is also an edit and a collation of things, you would need to ask about that too since you would need to distribute those files yourself if you did)

#

As for how you can use them (and thus make sure they still get their share of credit), generally a tilesheet mod will use Content Patcher to Load their tilesheets to the game, that way your map will still be able to find them once the game is actually running, even without their .pngs in your folder at all. This works as long as the tilesheet mod is also installed alongside your mod, therefore setting them as a requirement is the way you are crediting them, as others using your mod will still need to download from them

latent mauve
#

My Laundry Machines mod and my Bathroom Renovation mod both use HxW tilesheets (Bathroom Renovations just uses it as a dependency), and Laundry Machines needed to have modified tiles for animations.

wanton pine
#

"[og pixelsmith username], hello I am a tilesheet chopping manic who has made a crazy frankentilesheet of assets made by yourself and various other community members and with futher minor edits to it in the form of additional color and shadow variants, what would you like me to do about this regarding permissions?"

uncut viper
#

That's one way to ask. Remember they ain't required to say yes, though.

wanton pine
#

Obviously!

uncut viper
#

And if one says no, you cannot include your edits or distributions of their work in your publicly distributed mod.

#

You'd have to redesign your map to use them from the pipeline, if possible

lucid iron
#

Tbh I'm not really sure what's the purpose of unifying them

latent mauve
#

Also, if you've just grabbed tiles from their tilesheet without making any changes to the art, please consider finding a way to use their tilesheet mod as is without moving their art to your own sheet.

wanton pine
#

Yup. That said, most of what I'm using is HimeTarts and vanilla-derived to the point that I'm not even sure it would be accurate to call it theirs anymore? because at this point it's more of a modified vanilla asset. Most of what I've been editing is HimeTart's.

Re: Fireredlily's point - my brain: whining about liking things in one place

uncut viper
#

If you modified their art, it is theirs.

#

Or rather, the edits are yours but licensing rights still belong to them about it

latent mauve
#

You still need permission to modify and distribute, but using it without modifying means there is absolutely no reason to not use their original sheet / the mod as a dependency. πŸ™‚

lucid iron
#

I know it may seem more qol but it'll be more annoying for you compat wise

wanton pine
#

Clarification re "is it actually from their art" : they included a vanilla asset in their tilesheet. I remade the included vanilla asset with a new pallette and shadows. Thus the "does that even count at this point". Which is mostly quibbling for the point of clarifying technicallities and community rules/customs regarding transformitive works.

lucid iron
#

Ppl are far more likely to do recolor support for a tilesheet than specific mod

wanton pine
#

Tilesheet CP with optional funiture catalog?

latent mauve
#

If it's a vanilla asset in their tilesheet, is there a reason that you didn't just modify the vanilla asset?

wanton pine
#

Being a scatterbrain.

uncut viper
#

While it's impossible to say without seeing the vanilla asset or what the other tilesheet maker did to it, I would think social etiquette would still apply there in considering the idea to be theirs, if that is where you got it from. Again though, it highly depends on how vanilla it is and how much of a spin the other tilesheet maker put on it.
Legally speaking, no one here can give an answer (nor should they confidently try to)

wanton pine
#

πŸ‘† why I specified rules/customs ie not law! πŸ™‚

lucid iron
wanton pine
#

assets from several hxw tilesheets (among others) compiled into a new tilesheet with some new asset variants added. Originally for personal use, distribution in mod form is being discussed as a hypothetical.

#

with the caveat that it already exists for my personal use

patent lanceBOT
torpid sparrow
#

GUH I will I have to eat first

#

Remind me to look at closedmessage stuff in 2 hours

patent lanceBOT
#

ffs fine fine i'll do it (#7148810) (2h | <t:1776389235>)

torpid sparrow
#

Sorry marilda

#

wait is this technically marilda

#

Or does Maru have 2 robots

latent mauve
#

HxW Tilesheets (which would be your dependency most likely) is pretty clear in the permissions as it pertains to edits: On editing assets: You may edit assets in these tilesheets like changing colors of elements or including them into art assets directly so long as this mod is listed as a dependency. Ideally, please make sure the majority use is assets as they are and not edited assets.
^ directed at Skylark

wanton pine
#

I STG I looked for their premissions guidelines and couldn't find them! Probably my brain being its irritating self, as usual.

latent mauve
#

If you look on the NexusMods page under the Permissions & Credits section, it directs you to look at the mod description. It's there towards the bottom under the mod author instructions. πŸ™‚

wanton pine
#

Why is my brain like this.

#

Anyway, behold (some of) my foul deeds! (in an unusable state.)

#

minor coding grammar correction: "IsPrismatic": "true"

#

The following is an incorrect guess: You might have to do an animation sprite sheet, but I'm a CP newb.

lucid iron
#

You can't do that

#

Might work tho

void aspen
#

Is there a c mod that allows to put hats on npc

lucid iron
void aspen
#

Ooh I see

uncut viper
#

(likewise with ints/floats)

#

Content Patcher will automatically convert for you as needed. That said, if CP wasn't kind enough to do that, the non-quote version would be correct.

faint ingot
#

In the past I've used "showFrame 35" for the farmer putting down an object (to the right). I'm not sure where I got that frame ID from, but now I just need the exact same thing but to the left. Anyone know?

desert tinsel
#

Could someone help me fix this? Please!πŸ’œ

latent mauve
brittle pasture
torpid sparrow
#

time to tackle shop closed message

#

did Si update the wiki? im not sure if there were any more developments after i stopped reading the chat for the night

#

if not ill backread through here and figure it out

desert tinsel
latent mauve
#

Which is needed in this case

brittle pasture
latent mauve
#

showFrame <actor> <frame> [flip] so showFrame farmer 35 true to flip it around

faint ingot
#

thank you I missed that somehow

latent mauve
#

also this is relevant: Note that setting the farmer's sprite only changes parts of the sprite (some times arms, some times arms and legs and torso but not the head, etc). To rotate the whole sprite, use faceDirection farmer <0/1/2/3> first before modifying the sprite with showFrame.

#

you'll likely need to do both here since it will only be the arms otherwise

torpid sparrow
#

okay turns out im just bad at reading

#

unless what i was reading was changed

#

ohhh okay yes the text was changed

#

@proven spindle Thanks for the change to the OpenShop tile property!! interactable was the key word that made it click for me

#

super simple change (i just had to change the time parameters set in my tmx)

proven spindle
#

Glad it helped!

torpid sparrow
#

instead of writing different entries for each blank load

marsh reef
#

chat what is the use of loading a blank json

torpid sparrow
#

it allows you to use EditData and parse tokens

#

you can edit dialogue, schedules, etc. instead of just loading them directly

#

you shouldnt do a conditional load, but conditional edits are ok

uncut viper
#

You can do a conditional load if you make sure the asset has something loading it at all times. Most times people just don't have reason to.

desert tinsel
desert tinsel
# brittle pasture yea looks good

I just have to learn how to get him to talk again now, because he still doesn't allow interaction, despite following the schedule normally. T-T

marsh reef
#

anyone know what keys they're pressing on the aseprite demo for the shading mode on the main .org webs page?

toxic topaz
#

theres a shading mode? POGGIES

marsh reef
#

chat

#

yes bro 🀣 thats the main reason i got it

toxic topaz
#

maybe this? idk

marsh reef
#

nono look

toxic topaz
#

huh? isnt that the same thing?

void aspen
#

What's shading mod

#

Do you mean overlay type

marsh reef
void aspen
#

Huh

marsh reef
void aspen
#

That's something I never seen or used

marsh reef
#

but i cant figure out how they're doing specficially that

toxic topaz
#

wym doing specifically that

#

the fill in thing? i think thats the contour tool

marsh reef
#

bc they draw a shape with pencil, then it fills

toxic topaz
#

yea thats the contour tool

marsh reef
#

oooooooooohhhhhhh

toxic topaz
#

press d

marsh reef
#

thank you bro

toxic topaz
#

yea ofc

marsh reef
#

🀣

#

fourth time being offered crypto crime πŸ₯Ή

#

it's not you, its me, i dont like crime 😞 πŸ˜”

toxic topaz
#

crypto crime? is that like someone asking about how get into daytrading?

marsh reef
#

smthn about mr beast too

#

so..

royal stump
#

bots occasionally post images with phishing/etc stuff photoshopped onto phones or w/e, it's been a popular format for scams lately
staff wipe them out after a couple seconds

marsh reef
#

im personally impressed with how fast they are

royal stump
#

iirc the bots detect them sometimes, new accounts especially, but junimos are pretty vigilant

marsh reef
#

i see i see

royal stump
#

(other times it's someone who was real but lost their account, etc)

#

harder to auto-spot weird behavior in some cases

toxic topaz
#

wym clueless of course mr beast wants to give me 500 dollars

marsh reef
#

oh, you're so right

toxic topaz
#

doing stuff with particles is quite annoying....

#

does anyone know what the best way to make sand fall of of the player character when afflicted with a debuff?

patent lanceBOT
torpid sparrow
#

ha i already did it

sullen rain
#

Hey guys, I'm having an issue in my custom buildings where if I install an autograbber by default, it doesn't work unless you remove it and place it again. Any ideas why?

lucid iron
#

im betting its cus autograbber needs to have right class bolbthinking

calm nebula
#

(Yes)

sullen rain
#

wdym?

toxic topaz
#

no particle experts πŸ˜”

uncut viper
#

You're doing something completely custom, you're kinda in "DIY all on your own" territory here

loud sandal
brittle pasture
sullen rain
#

Oh okay so it's not something I did

royal stump
#

different objects use different "classes" in the C# code, like Furniture is a sub-class of a generic Object with extra code, etc; if the building system just assumes the auto-grabber is a generic object, it won't be spawned with the code that makes it work

sullen rain
#

Ahh gotcha

royal stump
#

that's incidentally what "Type" does in things like Data/Locations, making sure things spawn with a specific sub-type

#

but if the buildings don't offer that for objects, it's not accessible from CP

brittle pasture
#

in this case the auto grabber doesn't actually use a custom class, but its held chest needs instantiation in the placement logic that IndoorItems doesn't call

royal stump
#

ah, yeah, I haven't had to look at that one specifically SDVpufferdizzy

sullen rain
#

Okay. So it's not actually something I can fix as of this moment and all I can recommend is just pick it up and replace for now?

brittle pasture
#

and turns out SVE Premium Buildings' Auto-Grabbers work because the C# component handles that part πŸ˜…

royal stump
#

yep, for now it's probably not fixable except by players jostling it

sullen rain
#

Got it

#

Thanks guys

brittle pasture
#

maybe we can separate the fix in SVE into a 10 line C# mod

uncut viper
#

Wish granted, it is now another dependency that people dont want to require πŸͺ„

loud sandal
#

Is it related to Object.performDropDownAction at all?

brittle pasture
#

the relevant logic is in Object.placementAction

royal stump
#

oh right, that SDVkrobusgiggle

/// <summary>Check whether the object can be added to a location, and (sometimes) add it to the location.</summary>
/// <remarks>For legacy reasons, the behavior of this method is inconsistent. It'll sometimes add the object to the location itself, and sometimes expect the caller to do it.</remarks>```
#

also where torches, sign, fences, etc get replaced with functional versions

calm nebula
#

I love that comment

#

So much

tiny zealot
#

i think it's my favorite class of comment

loud sandal
torpid sparrow
#

like drawing costumes for an npc?

#

!commissions

ocean sailBOT
crisp karma
crisp karma
torpid sparrow
#

oh custom i see

#

im not sure who offers FULL npc commissions

#

it looks like one specifies fully custom npc

crisp karma
#

@devout otter hi I saw you offered commissions on the wiki page?

crisp karma
torpid sparrow
devout otter
#

Do you want to discuss it via DM?

marsh reef
toxic topaz
marsh reef
#

🀣 fair enough

toxic topaz
#

so technically i got all of the mechanics done for the sandstorm except the vfx, and the enemy i guess

crisp karma
rich seal
#

I wish I could just imagine the code part of my fish done. I spent more time making sprites than doing the other 99% of the content. All the copypasting I'm gonna be doing later... I can't wait for errors to crop up like crazy.

calm perch
#

is there a way in content patcher to make it so that dialogue doesnt repeat for a certain amount of time?

loud sandal
#

Can specify how long the topic lasts for

calm perch
#

ohhh yes ill try that, thank u!!

loud sandal
uncut viper
#

That doesn't stop the dialogue from appearing

#

That starts a conversation topic, and if you have dialogue for that conversation topic, it will only appear once, but thats true no matter how you start the CT

#

But if you put that $t into daily dialogue, it will still be able to show up as often as that dialogue key is relevant

loud sandal
#

True, not sure if there is a way using purely CP though?

uncut viper
#

You can however combine it if you want to with a separate Content Patcher patch that checks if the conversation topic is active and, if so, Editdata to remove whatever dialogue you dont want to appear for that duration

#

But if you wanted to do that for every dialogue, that's gonna be a lot of separate CTs and a lot of edits and every single one would need to be starting a CT

loud sandal
#

So you would be using the HasConversationTopic condition token and to delete the dictionary entry you would set it to null?

uncut viper
#

Yep

loud sandal
#

Wow you're a genius

uncut viper
#

You'd wanna make sure you have dialogue to fallback to though ofc

#

Like, don't remove your only dialogue thats possible to appear on Sunday

loud sandal
#

Yeah I see what you mean, it's a lot of work, but doable

wanton pine
#

one tactic could be using an unusual word that won't otherwise be appearing in the mod in all of the placeholder names/text, such as "purloined". That way if you miss an entry and your eyes don't catch it, the search function will. Same goes for numerical values.

#

for example:

{
    "Action": "EditMap",
    "Target": "Maps/ elephant ", 
    "FromFile": "assets/{{ModID}}_FarmExpansion.tmx",
    "FromArea": { "X": 0, "Y": 0, "Width": 50, "Height": 455 },
    "ToArea": { "X": 455, "Y": 455, "Width": 50, "Height": 455 },
    "PatchMode": "elephant",
    "When": {
        "SandboxLayout": "false"
        }
},

Where the placeholder word is "elephant" and the placeholder value is "455" as both stand out and are fairly easy to remember.

#

obviously you could already be doing something like this.

rich seal
#

Just saw the ping. Yeah I have templates and unique names that I can safely find and replace. Done that so far with one new fish. It's just covering all the bases I want, like how my mod has an optional toggle for putting roe in a cask (as an example). I've used custom roe IDs instead of the vanilla one, purely because I wanted a color scheme that vanilla wouldn't provide, but yeah. Gotta cover every base, think of all the uses, etc

#

and yeah, you said that right as I was about to hit enter lol

#

My main gripe is the fishing difficulties and locations. Most of my fish so far are ocean fish, so luckily I can copy my already existing ocean fish, but still. Lots of little tedious things I wish I could automate or shirk to some underpaid employee or something lol

wanton pine
#

if there's anything that my limited experiance with CP has shown me, it's that coding is tedious on account of finicky grammar, etc.

rich seal
#

I recently learned that capitalization matters. I normally capitalize all my words, like "Campaigner.StinkyFishCheese" for IDs and such, but I had one single instance where it was, using that bad example, "Campaigner.stinkyFishCheese". Whole mod said "NOPE" and didn't load lol

#

I really need to copy/paste more often instead of typing everything out manually, but a coding friend who refuses to help otherwise told me to do it that way so I can both practice my typing skills and also learn how to code through memorization.

wanton pine
#

or going from stardew.locations.cellar to stardew.locations and then learning that it's actually stardew.gamelocation ????

rich seal
#

lol

wanton pine
#

indeed!

#

Anyway I need to sleep so I am offlining for the night, may your typos be minimal and very obvious!

rich seal
#

lol indeed. Here's to less typos

#

🍻

rain inlet
#

stinky fish cheese...

viral gazelle
marsh reef
hard fern
timber pilot
#

How do I add a pass out letter? I looked at the wiki but couldn't find anything for that specific case

timber pilot
#

so do I put the field in the green part or in the mail text?

verbal glacier
timber pilot
#

so I don't use data/mail for that?

verbal glacier
#

you use data/mail for the actual mail, you use data/locationcontexts to send out a letter whenever you pass out in that area

timber pilot
#

oh ok thanks

#

do I have to edit location contexts under a specific patch?

verbal glacier
#

you have to make a separate editdata Data/LocationContexts yes

timber pilot
#

I did do that

#

I' still confused thouggh

verbal glacier
#

don't know if you have something like east scarp but it has a good example for you to follow

#

and otherwise you can send your .json

timber pilot
#

I didn't type anything yet

#

I don't know how to begin

verbal glacier
# timber pilot I don't know how to begin

YourLocation is the location you define in Data/Locations
YourMail is the mail you define in Data/Mail

{
"Action": "EditData",
"Target": "Data/LocationContexts",
"Entries": {
"YourLocation": {
"PassOutMail": [
{
"Id": "YourId",
"Condition": "PLAYER_LOCATION_NAME Current YourLocation",
"Mail": "YourMail",
"MaxPassOutCost": "Optional see wiki",
"SkipRandomSelection": "Optional see wiki"
}
]
}
}```
#

i think it would be something like this but i am also not entirely sure

timber pilot
#

this made me understand it a lot better thanks

rich seal
#

Need a bit of guidance. I've got the fish spawning down just fine, but I have two cases that are giving me trouble.

"SquidEater/75/sinker/12/48/600 2600/DATE_RANGE Winter 12 1 Winter 13 1/both/690 .4 685 .1/1/.50/.3/0"```
The first is supposed to be a crabpot fish, but after an ingame week, I've yet to get this thing to spawn in a crab pot though. The second is supposed to only spawn on two days during Winter (specifically Squidfest's dates), but it spawns every day. I think I didn't understand the guides on the modding wiki. What did I do wrong here?

Edit; figured out the crab pot issue, I forgot to add the unused part of the code (688 .45 689 .35 690 .35 between rarity and ocean). Just need help with the second entry now.
royal stump
#

DATE_RANGE Winter 12 1 Winter 13 1 is a game state query, which Data/Fish doesn't support; you can only enter season names in that field

#

if the goal is to only let those be caught during winter 12-13, you might be able to use When conditions on the edit that adds them, though it'll be a bit finnicky (crab pots update overnight & might see the previous day's data)
(edit: right, not a crab pot fish)

rich seal
#

I originally did try using the When condition, but maybe I did it wrong back then too.

      "Action": "EditData",
      "Target": "Data/Locations",
      "TargetField": [
        "Beach",
        "Fish"
      ],
      "Entries": {
        "Campaigner.SquidEaterFish": {
          "Chance": 0.4,
          "When": {
              "DATE_RANGE Winter 12 1 Winter 13 1" : "true",
          },
          "Id": "Campaigner.SquidEaterFish",
          "ItemId": "Campaigner.SquidEaterFish"
        }
      }
    }```
#

I probably did it wrong though, since it clearly didn't work lol

royal stump
#

"When" doesn't go in the entry itself, it's a feature alongside Action/Target/etc

rich seal
#

...That might be my issue then lol. Gonna move it and test

royal stump
#

that said, Data/Locations fish entries should have a "Condition" that actually does support the GSQ there

#

so When won't be necessary for that, it'd just help with Data/Fish if that was the goal (but it's not, now that I follow)

calm nebula
#

Yup, replace the word "When" with "Condition"

rich seal
#

Alright. Moved it up under Action and changed to Condition. Here's hoping I don't catch my fish now lol

#

Weird how I DON'T want to catch it for testing lol

royal stump
#

to clarify, this should be correct, I think

   {
      "Action": "EditData",
      "Target": "Data/Locations",
      "TargetField": [
        "Beach",
        "Fish"
      ],
      "Entries": {
        "Campaigner.SquidEaterFish": {
          "Chance": 0.4,
          "Condition": "DATE_RANGE Winter 12 1 Winter 13 1",
          "Id": "Campaigner.SquidEaterFish",
          "ItemId": "Campaigner.SquidEaterFish"
        }
      }
    }```
#

er, one sec

#

okay now SDVkrobusgiggle

#

Condition is a single string, unlike When, and it does go inside the entry

#

"When" goes outside and just decides whether CP applies the whole action or not
(not necessary here)

rich seal
#

Gotcha

#

This all sounds like wizardry and witchcraft to a non-coder like myself, but going to try that now

desert tinsel
#

Could someone help me fix this? I really can't solve it myself. T-T

rich seal
verbal glacier
royal stump
rich seal
#

    {
      "Action": "EditData",
      "Target": "Data/Locations",
      "TargetField": [
        "Beach",
        "Fish"
      ],
      "Entries": {
        "Campaigner.BeachFishSquidFestSquid": {
          "Chance": 0.4,
          "Condition": "DATE_RANGE Winter 12 1 Winter 13 1",
          "Id": "Campaigner.BeachFishSquidFestSquid",
          "ItemId": "Campaigner.FishSquidFestSquid"
        }
      }
    }```
#

Those are just the lines, but if you need the whole json, I can drop that too

#

Disregard the SquidFestSquid part, I fixed that already lol

royal stump
#

SDVpufferthinkblob that's the only part that stands out, you'd need it to match* the Data/Fish and also Data/Objects keys

#

also if you're not in year 1, that date range condition will prevent catching it

verbal glacier
royal stump
#

actually one sec, I keep forgetting date_range is weird, there's a combo that works for multiple years

#

"Condition": "SEASON winter, DAY_OF_MONTH 12 13" should be winter 12-13 for any year

rich seal
#

Alright, I'll try that rq

desert tinsel
verbal glacier
#

just add a comma and a space and then paste that behind the characters/schedules

rich seal
verbal glacier
strong kite
#

Im realizing i've added so many things since the last time I loaded the game and actually tested things... I should probably do that huh?

desert tinsel
# verbal glacier Yup, i believe that should work

It did work and I'm grateful for that, but following his routine, I saw that the introduction and dialogue at the first stop of his programming works, but for example, when he stops at Saloon, I click to interact with his speech and it doesn't work.

#

Can you tell me what could be doing this problem right now?

strong kite
#

Although I'm worried I'm gonna get errors cuz some of my bundles have blank ModId tags waiting for input

desert tinsel
#

Is there a limit to the dialogs I can put on the schedule?

verbal glacier
#

I’ll check again in a bit

desert tinsel
strong kite
#

Wow I really messed that one up

#

I messed up a LOT about this file. I guess that's what I get for going back to Notepad++

desert tinsel
royal stump
strong kite
#

I keep getting inconsistent errors each day with this. (I fixed the WEATHER thing)
First it was Backwoods, Town, and Mountain.
Then it was Forest and Railroad.
Now it's just Mountain..

royal stump
strong kite
#

I dont seem to be getting the errors now..? Then again I just went to summer so it's not testing winter spawns now

#

I guess I messed something up with the winter forageables?

desert tinsel
royal stump
strong kite
#

Is there anything different between the winter forageables compared to the fall forageables which DO seem to be working right?

#

These are also probably revelent

royal stump
#

the error you're getting is when the "true" part of your IF action fails, and I think it's failing to mention whatever code went wrong on spacecore's side, so the issue is probably on that end

desert tinsel
strong kite
#

But it's probably not actually affecting anything?

royal stump
#

I mean, it's probably keeping your action from applying whenever the error happens, so it'll need fixing if possible

#

I'm not familiar with spacecore's spawn format or code at all, so at a glance, I guess make sure the winter item IDs match your Data/Objects and such?

#

otherwise they do seem equivalent

strong kite
#

Ah shoot okay I misread what you had said

royal stump
#

yeah, what I mean is that the if action is running into an error when it runs your TriggerSpawnGroup winter stuff, but then it doesn't report the full error message from spacecore (in other cases, it might do a whole "stack trace" where it says what code lines complained)

#

and it's just the generic "an error occurred" instead of anything custom from spacecore

strong kite
#

auughh of course 😭

#

I guess to get somewhere with testing I can try swapping the condition to fall and see if it's the GSQ for winter acting weirdly or if it's something else within those lines

#

Also yeah I should def prioritize actually adding the items needed to finish all of my bundles (Not necessarily the methods to get them yet, though)
-# or even sprites for the moment..

#

Once I get this fixed of course

#

AUUGHGH I GOTTA FIX THIS TOO NOW- SDVpufferwaaah

#

Would that be related to the "MugShotSourceRect" field in the character file?

#

Progress allthethings It's not the condition

#

I mean Theoretically if I just change that block with the block from another set that is working, it should just work? then I just change it back to Winter forageables

#

omg I was actually kinda hoping that wouldn't work- WHAT IS DIFFERENT IN THAT CODE???

royal stump
# strong kite Would that be related to the "MugShotSourceRect" field in the character file?

probably that, yeah, it might be offset or the wrong size

(Optional) A rectangle specifying the portion of the character's sprite texture to show as their mug shot icon in the calendar, social menu, and other contexts. Defaults to part of their first sprite, based on Age: (0, 4, 16, 24) for a Child and (0, 0, 16, 24) for a Teen or Adult.
For best results, use an area 16 by 24 pixels in size.

tiny zealot
calm nebula
#

I love how is called MugShot

#

You're all arrested

tiny zealot
#

it used to be called SocialTabIconSourceRect, until pathos updated the calendar code to also use it instead of doing whatever secret other thing it was doing before

calm nebula
#

Does this mean you can use anywhere in their spriteshet

#

Including not the first slot?

#

Or different sizes?

strong kite
#

This is a 24 x 24 selection of a 32 x 32 sprite starting from pixel 5 on the x axis

#

Also ughghhg okay so there's something wrong with my winter forageables spawn group...

#

oh yeah and it HAS to be the spawn group cuz I've kept the Id for this entry the same

ornate locust
#

oh you think I can just scoot over my building to a spot you like better, sure, let me change 68 map patches

strong kite
#

Bro I swapped out the loot table and it worked wth is different 😭
These 3 berries show up in ga- wait a minute.....

#

maybe something's wrong with one of their spawnable definitions

ornate locust
#

apparently the path looks "squished" now with the building there. (there is originally a CLIFF there, so it would still be squished, man)

strong kite
#

would commands related to ginger island run if I don't have ginger island unlocked in the save?

#

As it turns out... yes

#

I'm gonna have to figure out the spawn rates for all these forageables 😭

craggy goblet
hard fern
#

You just can't get there

strong kite
#

but wait a minute.. this area should also be spawning forageables from the Dingy forageable group... unless it just missed a 75% chance multiple times?

desert tinsel
tiny zealot
royal stump
strong kite
craggy goblet
#

The errors can't hide from us forever!! πŸ˜€πŸ—£οΈπŸ”₯πŸ”₯

desert tinsel
desert tinsel
strong kite
#

DAMMIT- Ok it wasn't the Touga berry

#

I guess I just remove them from the spawn table one at a time and see if it ends up working

#

what do you meaaannn it was none of them sobber

#

Unless it's two of them?

#

Oh wait it actually was allthethings

craggy goblet
#

Damn

verbal glacier
strong kite
#

but wait if the Touga berry is one of the problems then why isn't the other spawn group breaking 😭

#

No it cant be there's nothing different between the entries except for the weights Azusob

#

Maybe I just messed up something on my testing end with the other berry

marsh reef
strong kite
royal stump
#

by default, anything the game considers forage is deleted on sundays, iirc

marsh reef
#

Mmmmmm, if you use ftm there’s :3

strong kite
#

Also yeah I absolutely just messed up when testing if the Ginama Berry was the issue LUL

royal stump
#

(FTM has to intentionally dodge that, idk if spacecore offers controls)

strong kite
royal stump
#

I think it was every map, though I'll try to dig up the code that does it, it's kinda vague

strong kite
#

Alright

#

Anyway now I know for SURE what is causing this issue

#

wait.. Ginama?

#

😭 I found the issue

#

That's the objects.json.. and the CORRECT spelling 😭

#

I went on this giant goose chase over a TYPO Waaa

#

actually an hour long goose chase

craggy goblet
tiny zealot
strong kite
#

OOPS-

royal stump
#

I was getting close to bringing up data/objects again SDVkrobusgiggle but yeah, ID mismatches will do that, and the trigger actions weren't showing the error reason

strong kite
#

I got caught up in my own misreading what Esca had said before I forgot to actually do that infinitewhy

craggy goblet
#

At least you now know what went wrong πŸ˜”

royal stump
#

anyway re: forage expiration, it should happen every sunday morning everywhere except the farm or part of IslandWest (presumably around the farm there)

#

basically any spawned objects that can be picked up will disappear

strong kite
#

Alright, then yeah I just need to tweak the spawn rates and amounts so they don't get horribly out of hand

strong kite
#

It feels weird spending a few hours making placeholders instead of like.. ACTUALLY making the items LUL

#

oh okay its only been an hour

#

But I've basically set myself up to max out the size of my current objects sprite sheet

rich seal
#

Looking for a bit of help. I'm setting up another fish, and I want it to be catchable on any of the farms. Right now, I have

        "Farm_Standard",
        "Fish"
      ],```
I am going to take a wild guess that this only covers the basic farm, but I'd like to add several more entries; Farm_Beach, Farm_Forest, Farm_FourCorners, Farm_Hilltop, Farm_Riverland, Farm_Wilderness, and Farm_MeadowlandsFarm. How would I do this effectively?
strong kite
#

But I can also save you the time just gimme a sec

rich seal
#

I already have it unpacked and am aware of how to navigate that

#

it's just that I don't know how to properly set it so a fish spawns in multiple areas

fossil osprey
#

doesn't the farms fish take all fish of their water body type?

strong kite
#

-# dont tell me ive misinterpreted what you're asking for

fossil osprey
#

like, if a farm has a water body set as "river", you'll be able to catch all river fish?

#

I'm not sure as I've never done it, but this was my understanding

modern mantle
#

I understand why the buttons would be the default, but not the background etc

scenic ferry
#

what is actually required to make forage spawn on a custom map? I put the forage info into data/locations, added ForceSpawnForageables TΒ² to the map properties, and slept a few days, but nothing has spawned

#

as usual i suspect im simply doing something silly

orchid glade
modern mantle
#

Making mods, I'm making a custom language mod

orchid glade
#

I'm gonna have a look inside starblue abd see what I can see

modern mantle
#

Also, why is the console printing specifically the second paragraph of my readme.md when loading?

#

To be honest, this is my first time making a mod bigger than a few patches, so I'm a little bit in the deep end :P

orchid glade
#

Is this a C# mod? That I can't help with lol.

modern mantle
#

Nope, entirely Content Patcher

orchid glade
#

What's the language code for welsh? it doesn't look like there are localised assets particularly for that.

modern mantle
#

cy, I wouldn't expect there to be anything existing for it already

orchid glade
#

Oh is this adding a custom language that's not natively supported

modern mantle
#

So are the Starblue assets replacing specifically the English-localised assets, and that's why it breaks with a custom additional language?

modern mantle
orchid glade
#

And the language button is the only visual asset you're loading right? Because starblue recolours the vanilla buttons. Maybe something about what gets launched when you click the custom language button is different?

modern mantle
#

Yep, the only visual asset I'm touching is the language button

tender bloom
#

have you tried patch summary full?

modern mantle
#

You can actually see in the video I sent that when I have Cymraeg as the language, the only Starblue assets that are being loaded correctly are the other language buttons

modern mantle
tender bloom
#

!patchsummary

ocean sailBOT
#

Can you do these steps to provide more info?

  1. Load your save and view the content that should be patched.
  2. Type patch summary directly into the SMAPI window and press enter.
  3. Upload your SMAPI log to https://smapi.io/log (see instructions on that page).
  4. Post the log link here.
tender bloom
#

you can try patch summary full to get the most detailed level

#

it should tell you what CP thinks it's doing for each of yours and Starblue's patches

modern mantle
#

o7 I will try that now, should I disable all of my other mods while doing it?

tender bloom
#

it's a bit of information overload at first but you can sift through it to get the details

orchid glade
tender bloom
#

other mods installed is fine, but it will increase the amount of extraneous info

#

so it's up to you

orchid glade
#

BUT.... I am noticing a lot of blahblah{{language}} in Starblue's code

tender bloom
#

also when you say disable, are you using a mod manager?

orchid glade
#

So maybe it's looking for assets localised for cy

modern mantle
tender bloom
#

ok cool, just checking because Vortex can cause really weird issues

devout otter
#

Starblue's coding specifically only works if the language is default or Portuguese.

modern mantle
#

Huh

#

Fascinating

devout otter
#

It's coded specifically like that.

modern mantle
#

I kinda understand why that is, but that does make this a little annoying :P

#

I guess I'll deal with not having Starblue while testing then?

modern mantle
devout otter
#

It has open permission, too, so if you really want you can just copy its entire tilesheet into your mod.

modern mantle
#

Fair, I will consider doing that for my local copy if I get really annoyed at not having Starblue

#

Thanks so much for your help :]

orchid glade
#

Oh also I am looking at Starblue unoficial 1.6

modern mantle
#

Yep, that's the one I have

orchid glade
#

Baffled

devout otter
#

Oh, I'm looking at the original...

modern mantle
#

It does look like it tries to load files for specific languages, but only if files exist for that language

orchid glade
#

Yeah I took from that, that you could dump JunimoNote.cy into it and it would work

#

But they start by editing with the default asset so I'm not sure why that wouldn't work when you change to an unsupported language

#

Does nothing from it work when you change language?

modern mantle
#

Doing some testing, brb

orchid glade
#

And, also, if you go into GMCM once you've changed language... is it enabled? Because Starblue also doesn't have i18n for cy unless you've put that in. Though again, I'm not sure why that would get in the way.

orchid glade
modern mantle
#

Okay, doing some testing without other mods and I have been a little bit stupid: it appears to be Universal Recolors that isn't working when set to cy, not Starblue

#

I thought my interface changes were Starblue πŸ’€

#

Sorry for wasting everyone's time looking at Starblue, I'm now gonna go look into the files for Universal Recolors

orchid glade
#

lol

modern mantle
#

Yep, looks like for UI it loads the default if it's set to en but the specific language if it's anything else, and of course it doesn't have anything for cy

#

Well, we got there in the end

orchid glade
#

Well that would do it!

#

So, at least rest assured you should still be able to use starblue instead

modern mantle
#

Yep, I might also put a comment on Universal Recolors to see if they can patch it

#

Thanks for sticking with me, sorry I ended up wasting a lot of time with the wrong mod :P

orchid glade
#

No problem at all. I like looking inside mods so I'm good.

modern mantle
#

Got it working just by removing all of the language: en checks :] Maybe if I ever properly release my translation I'll release this as an unofficial patch for Universal Recolors (since the dev doesn't seem to be updating it anymore and the permissions say it's fine to release unofficial fixes)

timber pilot
#

what exactly is the problem here?

tender bloom
#

Are you telling it to go somewhere at 2250 and then somewhere else at 2250 again?

timber pilot
#

no

royal stump
#

tldr use a as little as possible in schedules
it causes it to calculate the arrival time and start that part of the schedule when necessary, but if multiple a steps calculate the same time, it'll conflict and cause that error
(or if just one a step picks the same time as something else)

latent mauve
#

I'm going to hazard a guess that your a<time> entries might match up to 2250, but I am also curious as to whether or not "postofice" is a typo.

royal stump
#

a2450 -> a2500 -> etc will almost certainly not give them enough time for those to happen at separate times

timber pilot
royal stump
#

though ig it's more likely to be the ones that go between maps

latent mauve
#

(also unless they are stopping for a significant amount of time or conducting a special animation at a destination, there is no need to transition from point a to point b with a bunch of small steps in between)

#

I'm guessing this is a postal route, in which case, you may just need to allow a little more time at each destination.

severe cairn
#

I can confirm a in schedule is evil and caused me great pain and confusion when i got errors (and also isnt that accurate anyway)

#

Had to remake everything and delete every a cus it was mean to me

#

I like to write how long it takes my NPC to walk from a point and to another, just so I can use it to calculate next time they have to make the journey or a similar distance :3c

strong kite
#

If I were to never have the NPC walk left or right, would this theoretically be all I need for the spritesheet?

latent mauve
#

You could also pull a Mister Qi and only do every other side frame. πŸ˜›

#

(it's why he teleports weirdly during the cheaty summit access event)

strong kite
#

I could also just make the one sprite I have bounce LUL

latent mauve
#

NPC walking animations are typically only 4 walking frames in each direction, though I am not sure if that's a hard requirement if using frameworks that modify the NPC animations.

strong kite
#

oh shoot I didnt consider that

#

Well these are easy enough to alter cuz like i think it's only actually 3 frames at different elevations

latent mauve
#

Yeah, it's usually a simple pattern of neutral -> one foot/arm forward -> neutral -> other foot/arm forward

#

for the front view

strong kite
#

I dont need anything complex for them, this is a character that will basically sit in one place for a shop and may have one event associated with it

long jungle
#

Hi guys!

I am the author of Combat Overhaul and I use aedenthorn's Buff Framework Mod.

When I use the framework to apply buffs, this happens on my most recent mod update.

I'm constantly getting the error...

[Buff Framework] When: Which and Id (or BuffId) fields are both missing

As a mod author, is there any way to check which line of code causes the error using SMAPI console commands or do I have to manually check all lines of code that uses the framework? As reference, I'm 97% sure that all of my code uses BuffId, but none uses the Which field as it can be left omitted as far as I know.

Would it also be possible the exact conditions that causes the warning to pop up?

I would appreciate any advice. Thank you!

https://smapi.io/log/f36af27ea874458297d2d5623fe3c7f4

ocean sailBOT
#

Log Info: SMAPI 4.5.1 with SDV 1.6.15 build 24356 on Windows 11 (10.0.26200.0), with 108 C# mods and 100 content packs.

brittle pasture
#

the alternative is posting your code so others can check SDVpufferwoke

long jungle
#

Maybe I should do the great cleaning now and finally separate my code into different .json files SDVkrobusgiggle

latent mauve
#

"If which is set to -1 or omitted, the built-in buff list is not used and you must set the buffId field. If you do set which, omit the buffId field.

Have you tried using which and just setting it to -1, since you have a buffId?

#

Just a curiosity based on the documentation.

long jungle
latent mauve
#

also just confirm that your buffId field is capitalized correctly in case it cares.

long jungle
#

But it might be a terminology confusion and I might need to explicitly include it and give it a value of -1

#

"buffId": "FjorlagRond.MWBRM/TopazRing"

latent mauve
#

Documentation implies you can leave it out, but it won't hurt to try including it since it also says -1 will make it ignore it as though it were omitted.

long jungle
long jungle
strong kite
#

I need this critter in the game IMMEDIATELY gentlyholds

#

Ok I improved that sprite LUL

#

If this NPC is only for a shop do they even need an entry in my characters file?

#

Like they cant be talked to outside of the shop

lucid iron
#

Not really

#

They wouldn't be able to walk around though

#

Since you'd have to do a map tile in that case

strong kite
#

That is perfectly okay she in a box

latent mauve
#

If they don't feature in an event that would need them to be defined as an actor and don't need a portrait, then they could just be a map tile NPC, which doesn't need a Data/Characters entry.

strong kite
latent mauve
#

(you might be able to do portrait dialogue without a Data/Characters entry, but I blank on how you would do that, if it is in fact possible.)

#

You may be able to define a temporary actor sprite on another NPC to fake it for the event

lucid iron
#

You can make temp actor

#

Without need for entry

latent mauve
#

Yeah, that

strong kite
#

And It'll use the walk animation just fine?