#making-mods-general

1 messages · Page 62 of 1

tiny zealot
#

i like to think the kids still say F, because i do that and that would make me Still Cool, but they probably don't

#

(narrator: he was never cool)

calm nebula
#

(I looked up the year that happened and that was one of my busy years, so no wonder I had no idea)

#

also the wiki page 😦

#

that's amazing

#

one second

tranquil quiver
#

json is saying there is no errors but its still not working

brittle pasture
#

hmm your file looks fine to me. what's not working specifically?

#

any errors in the console?

tranquil quiver
#

I'm trying to edit the vanilla marriage sprites

#

hmmm.. ill take a look

gilded comet
#

oh this is hell ! cool!

ivory plume
ivory plume
#

Well, we should still apply the optimization when it doesn't change the text. So we could add a bool caseSensitive = false argument to that method.

tranquil quiver
#

Unfortunately no errors on the console either.. i am using DSV but i checked “off” option on the sprites i want to change. Otherwise idk what’s going wrong

calm nebula
#

I honestly think hacking InvariantSet to support a discriminated union of (single value) vs (hashset of multiple values) might better

heady crest
#

is there a way to have year 1 only schedules? saw smth like that for dialogues on the wiki but not for schedules

ivory plume
#

It's essentially a free optimization since we already have the logic for other value providers. I guess either way isn't a big deal though.

calm nebula
#

thinking about it, a lot of tokens are one item only

#

this is...pretty doable

#

it's already an interface

tiny zealot
heady crest
#

i wanna have a arrival day specific schedule, ill look into that later then

brittle pasture
tranquil quiver
#

Ok i checked the 1st 2 and still nothing

#

This is my 1st mod.. so I’ll brb. I have to go figure out what’s a file extension 😅

brittle pasture
#

!fileextensions

ocean sailBOT
#
Hidden File Extensions

Windows and Mac hide most file extensions by default. If you are creating or updating mods, it's helpful to show file extensions so that you can be sure all mod files are named correctly.

To show file extensions on your computer:

On Windows 10, open File Explorer, click on the View tab, then check the File Name Extensions box.

On Windows 11, open File Explorer and click on View > Show > File Name Extensions.

On Mac, open Finder, and in the menu bar, click on Finder > Settings (or Preferences) > Advanced, then check the Show all filename extensions box.

tranquil quiver
#

Oh ok thanks I’ll double check to make sure it’s enabled

brittle pasture
#

Also post your log if you're able. It might be the case your mod isn't detected

ashen goblet
#

Hello! Everything is going well with the mod I'm making--I'm looking at the portraits section now! Though, how can I have the code recognize the ($1, $2.. etc) when it comes to portraits

brittle pasture
#

the log shows all enabled mods, along other info

uncut viper
ashen goblet
tiny zealot
#

traditionally, portrait sheets are two columns, so:

uncut viper
#

!unpack have you unpacked your files?

ocean sailBOT
#

Follow this guide to unpack the game's content files in order to see and explore how the game data is structured.
It's helpful when making your own mods, or just to learn about how the game works!

ashen goblet
#

I have!

tiny zealot
#
$2 $3
$4 $5```
etc.
ashen goblet
#

Thank you guys!

#

Greatly helped

tiny zealot
#

(not me hitting enter instead of shift-enter by mistake, couldn't be me)

uncut viper
#

you can double check the portraits in your unpacked folder if you ever forget too

tiny zealot
#

there's no requirement to use two columns though. the number is just the order they come in, left to right and top to bottom

uncut viper
#

you're also not limited to just those 6 portraits, theyre just the ones with shortcuts

tiny zealot
#

(cf. avi's lance mod with 104 portraits)

uncut viper
#

which im realizing now arent in that wiki screenshot so that might make no sense to you

tiny zealot
uncut viper
#

also re: two columns, its still probably better to follow that convention to not break any potential EditImages though since those use coordinates

tiny zealot
#

if it's a new asset for a new NPC it's probably safe to do whatever you want. anyone who wants to edit it will have to look at it anyway, i would think

uncut viper
#

unless someone wants to do somethin dynamically in C# for all portraits

tiny zealot
#

SDVpufferthinkblob don't you have access to the image dimensions in that case?

uncut viper
#

you do, but its a lot easier to just say like "apply an overlay to these coordinates on all portraits" than do math to figure things out per portrait just to catch the one mod that doesnt follow the convention

true coyote
#

Does reducing a buildings exterior footprint involve a lot of indepth coding/work? I wanted to make tinier sheds but still have the same amount of room inside

brittle pasture
#

not at all, just a patch to the building data exterior size

uncut viper
#

the interior space has no bearing on the exterior

lucid iron
#

except fish ponds which have draw logic, most buildings r just a sprite

teal bridge
#

Is there monster data or are they all hard-coded?

sacred rain
#

Finding testing material for my savefile parser is genuinely hard! I need a 1.6.8 maxxed out save, but apparently that's impossible

lucid iron
#

there's monster data

#

its just drops and hp i think? very little info about their behaviors

#

no uniform sprites either

calm nebula
#

Upload.farm

uncut viper
#

theres some misc other stuff in the monster data but their behaviour is mostly hardcoded yeah

calm nebula
#

Load it once in 1.6.8 so migrations run

teal bridge
lucid iron
#

Data/Monsters

uncut viper
sacred rain
#

so stuff will be missing

teal bridge
#

Oh, so there is no class for monster data, you can only get the string? Lame.

uncut viper
#

theres a perfection debug command if that helps

lucid iron
#

DataLoader.Monsters(Game1.content)

teal bridge
#

Yeah I know... it's a Dictionary<string, string>

lucid iron
#

yea its succ

#

i had to hardcode the texture rects when i made notifs

late pewter
#

Potentially stupid Farm Map making question: Can I put something on the Paths layer that is also occupied by a tile on the Buildings layer? If I put something partially obscuring it on the Front Layer, will that tile draw correctly over the bush or whatever?

Part of me wants to say yes to all of those, part of me wonders if bushes and such will fial to spawn if something is on the buildings layer...

lucid iron
#

same as how vanilla does it for monster help wanted quests

#

Paths isnt rendered

#

terrain feature (like bush) is drawn based on their position iirc, nothing to do with map layers

#

paths just tell game to "put bush here for me"

tiny zealot
#

some indoor lights, too

late pewter
#

Or naturally spawn tree seeds

lucid iron
#

not too sure about that one i think not?

#

but you can use Passable F on back if u just dont want ppl walking over it

#

but u know, bush itself also makes it not walkable

velvet narwhal
brave fable
velvet narwhal
#

tbf it's only really 20 some odd actual emotes, i was an egg and wanted some coloration but didn't want to set overlays because i didn't know the update rate of overlays

late pewter
#

I'll probably just put a fake bush here instead. My concern was people being able to shake the bush from what is technically the bottom of a cliff.

brittle pasture
lucid iron
#

you may have problems with bush bloom mod yes

#

SVE secret woods has some unreachable bushes

#

extremely saddening

late pewter
#

I'll have real bushes around, too. Not all the bushes need to participate in a bloom.

lucid iron
#

but if u dont actualy desire interactivity

#

u can just put them in as tiles

#

its not a issue PecoWant

tiny zealot
#

don't give Cthulhu a stat block use an actual bush unless you expect your players to kill shake it

late pewter
#

Another concern is people using the destroyable bushes mod to jump up cliffs.

#

So fake bushes it is.

velvet narwhal
#

...jump up cliffs?

shell heron
#

Thank you this works, its fine for personal play through. but now there's a issue that it spawns fruit when you pick just mushrooms :/

lucid iron
#

if u want it to spawn different stuff depending on pick then u just gotta have 2 entries

vernal crest
#

Not sure if this is related to your EditImage changes not working, but your Format is really low. It should be 2.3.0.

teal bridge
#

Cats are monsters, apparently. Dogs are cool though.

soft wolf
#

With content patcher, how do I add to the "modData" dictionary? It used to be something like:

"ModData": {
    "MyCustomData": 1
}

But that doesn't seem to work for me any more

lucid iron
#

why do u need to add mod data

true coyote
lucid iron
#

(not saying u cant, but best if we know what mod this is for)

zenith robin
#

Does anyone know if I was to make a quick fix for UIInfoSuite2 not recognizing the new SVE trees, would that be something I could share with others? I can't find any info about it on the github page.

soft wolf
uncut viper
#

UIInfoSuite probably would accept PRs however i imagine probably not at the moment since iirc the person working on it is still working on overhauling it to use GMCM instead?

lucid iron
#

do you want to use CustomFields instead?

tiny zealot
zenith robin
brave fable
#

is UIIS2 in active development though?

soft wolf
# lucid iron do you want to use CustomFields instead?

Maybe. Not sure what the difference is. Here is the method I'm patching:

private static void Automate_AutomationFactory_GetFor_SObject__Postfix(ref IAutomatable __result)
{
    if (__result is IContainer container)
    {
        Chest chest = container.Location.getObjectAtTile(__result.TileArea.X, __result.TileArea.Y) as Chest;
        if (chest != null && !chest.modData.ContainsKey(ModDataId)) __result = null;
    }
}
lucid iron
#

ah it's gotta be specific to instance of chest

tiny zealot
uncut viper
lucid iron
#

can you add this with CP think

zenith robin
#

I assumed so, but as I said I can't find anything on it.

uncut viper
#

i dont know how you would add mod data to a specifc chest with CP

soft wolf
# lucid iron ah it's gotta be specific to instance of chest

That's what I'm trying to do. It used to work, but doesn't seem to any more:

{
  "Format": "2.3.0",
  "Changes": [
    // Load Texture
    {
      "LogName": "Load Automator Texture",
      "Action": "Load",
      "Target": "KristianSkistad.Automators.Content/Automator",
      "FromFile": "assets/automator.png"
    },

    // Load Storage Data
    {
      "LogName": "Load Automator Object",
      "Action": "EditData",
      "Target": "Data/BigCraftables",
      "Entries": {
        "Automator": {
          "Name": "Automator",
          "DisplayName": "{{i18n: automator.name}}",
          "Description": "{{i18n: automator.description}}",
          "Texture": "KristianSkistad.Automators.Content/Automator",
          "ModData": {
            "KristianSkistad.Automator": 1
          },
          "CustomFields": {
            "furyx639.ExpandedStorage/Enabled": "true"
          }
        }
      }
    }
  ]
}
lucid iron
#

oh there was a framework after all blobcatgooglyblep

#

yea i think u can just use customfields instead

#

Data/BigCraftable must have lost ModData at some point

uncut viper
lucid iron
#

so the goal is to mark certain custom chests (made with ExpandedStorage) as "automators" right

zenith robin
#

Okay. Thank you for the info.

lucid iron
#

certain types of custom chests

#

not individual instance of chest

soft wolf
lucid iron
#

guide fresh out of the oven PecoSmile

#

u can see that ExpandedStorage is also using it

soft wolf
#

Am I at least going about this the right way so far? I've basically shared my entire mod at this point lol it's not very big, just the one patched method and that content patcher file.

lucid iron
#

yea it seems fine

#

well, insomuchas i been describe mod and u seem to agree that i interpreted the mod correctly

#

big craftables are a bit weird cus they dont have their own type

#

get data like this

Game1.bigCraftableData.TryGetValue(itemId, out var bigCraftableData)
#

and then the whole ?.CustomFields?.TryGet etc

uncut viper
# zenith robin Okay. Thank you for the info.

looked into it a little bit more, seems the repo for UIIS2 removed its MIT license back in March bc it wasnt allowed to have one in begin with bc the original repo its forked from didnt have a license in the first place. so. i still wouldnt do it (especially since im sure most people would rather just use the official UIIS2 version) but itd technically be in the same kind of gray area as UIIS2 itself is, i guess

#

id still just wait for the PR to be accepted

zenith robin
#

Yeah, makes sense. Thank you for looking into that.

uncut viper
#

("gray area")

lucid iron
#

you can always make UI3 PecoSmile

#

as long as it's all new code

calm nebula
#

(Someone really should.)

#

I nominate chue

uncut viper
#

its tempting if for no other reason than to put it under a completely open license

calm nebula
#

Yeah

uncut viper
#

i didnt realize UI info suite 1 was also a rewrite of another mod with no license/permissions listed lol

#

permissions mess all the way down

kindred hawk
#

How could I even begin making a mod for PIF(Personal Rooms) https://www.nexusmods.com/stardewvalley/mods/20537 I want to make a tiny kitchen map but I wouldn't know where to start

Nexus Mods :: Stardew Valley

PIF is a framework for new rooms in your farmhouse.It's especially useful on tiny farms and in multiplayer, as time stops in that room on days when the player didn't play.Access to your pe

uncut viper
#

that said im not tempted enough bc i dont know enough about what UI info suite actually does ive never looked at all the features it adds

vernal crest
calm nebula
#

Someone really should do a clean room rewrite tbh

uncut viper
#

i have never looked at the source code for it..

lucid iron
#

i dont actually know the features of uii2

#

besides the fact that it adds a tab

kindred hawk
vernal crest
#

I use UIS2 and I don't know what it does lol

tiny zealot
velvet narwhal
#

(there is documentation at the bottom for pif)

lucid iron
#

it adds a bunch of icons i guess?

#

and tooltips

#

something like that

uncut viper
#

sounds like we all make good candidates to draw straws to see who does the rewrite /s

vernal crest
#

I can see what my crops are when they are in the ground

calm nebula
#

Great!

lucid iron
#

nou

vernal crest
#

That's one thing it does that I can remember off the top of my head

calm nebula
#

Chue, i nominated you

velvet narwhal
#

make uber decide fate

uncut viper
#

whats the command for it again, just .choose?

vernal crest
#

It shows NPCs on the world map

lucid iron
#

i have to remake lookup anything in stardewui first

uncut viper
#

.choose chu, button, ichor, atra

patent lanceBOT
#

Choose result: atra

uncut viper
#

lmao

vernal crest
#

AH HA HA HA

tiny zealot
#

F

lucid iron
calm nebula
#

I'M RETIRED

uncut viper
#

tell that to uber

calm nebula
#

UBER WHAT ARE YOU DOINg

velvet narwhal
#

stardewui is only for pulling up new menus, right?

calm nebula
#

Have I not been nice enough?

lucid iron
#

right now yes

velvet narwhal
#

definitely not, the splitscreen fiasco probably got uber to hate you

gilded comet
#

can't argue with uber i guess....

lucid iron
#

u can check talk in the thread about challanges for changing piece of existing ui with starml rn

#

though the problems mentioned arent problems with shared lib version

calm nebula
#

I'm going to sleep

soft wolf
# lucid iron get data like this ``` Game1.bigCraftableData.TryGetValue(itemId, out var bigCra...

So like this?

private static void Automate_AutomationFactory_GetFor_SObject__Postfix(ref IAutomatable __result)
        {
            if (__result is IContainer container)
            {
                Chest chest = container.Location.getObjectAtTile(__result.TileArea.X, __result.TileArea.Y) as Chest;
                if (chest != null)
                {
                    Game1.bigCraftableData.TryGetValue(chest.itemId.Value, out var bigCraftableData);
                    if (bigCraftableData != null && bigCraftableData.CustomFields.ContainsKey(ModDataId)) __result = null;
                }
            }
        }
velvet narwhal
#

i still have yet to touch it because i honestly have nothing to make a menu with

calm nebula
#

Uber we will renegotiate in the morning

uncut viper
#

atra needs to be well rested to start on the ui info suite rewrite tomorrow

lucid iron
velvet narwhal
#

"nothing to it but to do it" s'what i say

lucid iron
#

btw if u do ```cs u get syntax highlighting in discord

#

oh but besides whole menus

soft wolf
lucid iron
#

there is features for HUD displays

#

that might be something u want in small doses PecoSmile

uncut viper
#

(tbh looking at this list of UIIS2 features im realizing theres actually quite a few that i just thought were vanilla lmao)

velvet narwhal
#

maybe, i would have to look at hooking things to specific spots on the hud

soft wolf
#

Hmmmm now every chest is automated again

lucid iron
#

did you change over the CP side too

#

make sure it's using the C# mod's id and stuff

soft wolf
#
{
  "Format": "2.3.0",
  "Changes": [
    // Load Texture
    {
      "LogName": "Load Automator Texture",
      "Action": "Load",
      "Target": "KristianSkistad.Automators.Content/Automator",
      "FromFile": "assets/automator.png"
    },

    // Load Storage Data
    {
      "LogName": "Load Automator Object",
      "Action": "EditData",
      "Target": "Data/BigCraftables",
      "Entries": {
        "Automator": {
          "Name": "Automator",
          "DisplayName": "{{i18n: automator.name}}",
          "Description": "{{i18n: automator.description}}",
          "Texture": "KristianSkistad.Automators.Content/Automator",
          "CustomFields": {
            "furyx639.ExpandedStorage/Enabled": "true",
            "KristianSkistad.Automator": 1
          }
        }
      }
    }
  ]
}
uncut viper
#

are you sure your ModDataId is right?

#

the target for the texture has Automators, plural, but your customfields key has Automator, singular, so maybe double check which one your code is looking for

soft wolf
#

Yep, it's correct. So this would mean it's saying every big craftable contains the key now, right?

uncut viper
#

every Automator bigcraftable will have that key yeah

lucid iron
#

although i'd expect this to still prevent automation on everything think

soft wolf
#

Hmmm well it seems to think every chest now has the custom field

kindred hawk
#

For PIF(Personal Rooms) it says to create your own room you can just edit the cozy sunroom farm but how and where would you go to edit it once you have the cozy sunroom farm installed?

lucid iron
#

you need to make your own PIF pack still

velvet narwhal
#

!mapmaking

ocean sailBOT
#

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

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

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

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

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

lucid iron
#

but you can start with existing one

#

do you already have a tmx?

velvet narwhal
#

it's not an in-game room builder if that's what you were thinking SDVpufferthinkblob

soft wolf
#

Missing that all important !

lucid iron
#

wew but u fixed it and now it work yes

soft wolf
#

Yes! 😄 Now just to make it craftable and require farming level 10.

calm nebula
#

Sorry. That was meant to be for botto

#

Remind me to take a look in three days

#

Remind me in three days to take a look

uncut viper
#

this is part of uber's renegotiation process

brave fable
#

remind @calm nebula in 3 days to "take a look"

patent lanceBOT
#

grass grows, birds fly, sun shines, and bblueberry... i remind people. I'M A FORCE A NATURE (#6299858) (3d | <t:1729134606>)

calm nebula
#

Oh my god okay I'll just write it down

#

Oh my god

lucid iron
#

do u think people want to make royal serpent like companions LilyDerp

tiny zealot
#

gotta use actual numbers i guess and not spell them out?

lucid iron
#

i feel like i have to make bootleg spine for that

brave fable
#

int(three) clearly doesn't fly with uber

soft wolf
# lucid iron <:wew:674165308369403915> but u fixed it and now it work yes

So, uhhhh...got any tutorials handy on how to make this craftable and unlock at farming level 10? Cause my old content patcher file doesn't work any more and I can NOT remember how this part "Automator": "122 1 337 5 787 5/Home/232/true/null/{{i18n: automator.name}}" works lol

// Add Crafting Recipe
    {
      "Action": "EditData",
      "Target": "Data/CraftingRecipes",
      "Entries": {
        "Automator": "122 1 337 5 787 5/Home/232/true/null/{{i18n: automator.name}}"
      }
    },

    // Add Unlockable
    {
      "Action": "EditData",
      "Target": "furyx639.ExpandedStorage/Unlock",
      "Entries": {
        "Automator": "true"
      },
      "When": {
        "query: {{SkillLevel:Farming}} >= 10": true
      }
    }
lucid iron
#

i think it still works like that

soft wolf
#

My formatting was just out of date on the recipe, almost got it working just how I want now, thanks @lucid iron ❤️

ashen goblet
#

Heya again! I just have a concern with the formatting of codes--I'm still going through Tia's wiki, though I need verification to whether the way it's all... copy+pasted (to be edited into my npc ofc) is correct

#

I feel confused to the many spaces in the front, so have to make sure!

vernal crest
# ashen goblet

What are you using for a text editor? You don't appear to have any syntax highlighting or indent indicators, both of which would make things much easier for you.

ashen goblet
#

Just notepad in itself

#

I tried Notepad++, though couldn't understand it

vernal crest
#

What couldn't you understand about N++?

ashen goblet
#

It didn't indicate any different colors or so--I'm not sure

vernal crest
#

I'd recommend you try again, or try using Visual Studio Code instead

#

You probably didn't have your N++ set to display JSON5

ashen goblet
#

What do I do with it?

uncut viper
#

if you just opened notepad++ and pasted it in, rather than making a .json and opening it with notepad++, you probably just needed to select the right language (json in this case)

ashen goblet
#

Do I just.. insert the code?

#

Got you

#

I'll try it again

uncut viper
#

in the top toolbar in N++ look for "Language", go to J, then JSON

ashen goblet
#

What should I do following that?

heady crest
#

are there any vsc extensions for stardew syntax?

uncut viper
#

it should highlight things different colours at that point, and it will help notice things if suddenly something you expect to be one colour is a different colour entirely (or commonly if you miss a comma or quote or something, the entire file will suddenly become one colour after the typo)

#

it also handles indenting and stuff better

vernal crest
#

Since you're using comments, I recommend JSON5 instead of JSON

ashen goblet
#

Thank you!

uncut viper
#

my N++ doesnt have JSON5 so i assumed that was a plugin and didnt say it

vernal crest
#

Because JSON dislike comments and won't be able to tell if a multi-line comment is closed or not

uncut viper
#

if yours does though definitely go for it

vernal crest
#

Hmm. My N++ has JSON5 and I don't remember adding it as a plugin, but I might've done

uncut viper
#

admittedly it might be because i havent updated N++ since early 2021 lmao

vernal crest
#

Ah that might be it haha. My N++ is up to date.

ashen goblet
#

Thank you guys!

ashen goblet
uncut viper
#

it depends on your theme, it just helps that the different pieces are different colours. just for easier scanning/glancing

#

no specific colours

rancid temple
#

linkoid made Stardew Syntax for VSC

#

I haven't used it, but it offers more color stuff

heady crest
#

what is a "temporary dialogue key"?

late pewter
vernal crest
uncut viper
#

!tilesheetclimbing

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
#

in this case its for the .tsx

late pewter
vernal crest
vernal crest
rancid temple
velvet narwhal
#

if i knew how the yaml worked i'd be attempting to push it more, but since i don't actively understand things like the whitespace bits, i haven't bothered

vernal crest
#

That's YACP, not their VSC extension

velvet narwhal
vernal crest
#

I use the VSC extension but not YACP because I don't find YACP easier than using json

heady crest
# vernal crest Context?

"failed setting temporary dialogue key "strings/schedules/maxine:coffee.000" schedule dialogue for the npc with coffee anim

lucid iron
#

I'm not sure how someone with no spaget background feel about either format

#

Json vs yaml

heady crest
vernal crest
vernal crest
teal bridge
#

On a semi-unrelated note, is there a handy function to get the "error item" sprite?

#

(without having to actually create an error item, that is)

ocean sailBOT
#

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

vernal crest
heady crest
#

the whole content json? or just the load part

vernal crest
#

The whole json is fine

late pewter
#

Is this how it's supposed to look or is this still wrong?

uncut viper
uncut viper
#

or just pull it from the first item in ItemRegistry.ItemTypes

vernal crest
teal bridge
#

Sad. Is that texture actually in the vanilla sprite sheets?

heady crest
#

i mean 210

rancid temple
#

(if you click the line number, it'll change the link to take people direclty there and you can share that instead)

uncut viper
#

ive got no clue where it is tbh

velvet narwhal
teal bridge
#

I actually don't see one in cursors, which is always the first place I look.

#

But I could be suffering from Cursor Blindness.

rancid temple
#

I would check the latest cursors

#

Error items are new

#

The game just used to crash

vernal crest
# heady crest i mean 210

Your log is saying that the game is trying to find a file called "Strings\schedules\Maxine" but your file is called "Strings/schedules/{{modID}}_Maxine"

teal bridge
#

What do you mean "latest"? I always look at unpacked data from the actual game.

uncut viper
#

i think they mean like Cursors_1_6

rancid temple
#

Like Cursors_1_6

teal bridge
#

Oh yeah. I've got that open too but didn't see it. I'll check again.

velvet narwhal
#

not this thing, right?

teal bridge
#

I always have Cursors, Cursors1_6 and Cursors2 open.

teal bridge
#

Hmm, that looks at least similar, not sure if it's the same one.

#

I guess that is in Cursors, ha.

uncut viper
#

(also i realize now GetErrorTexture just returns cursors and i couldve known the answer in like a second lol. you'll want GetERrorSourceRect too i suppose)

teal bridge
#

Thanks, I'll just stick the rectangle in cursors json, it's easier for this case.

velvet narwhal
#
{
    return "LooseSprites\\Cursors";
}``` ? ![SMCPensiveMove](https://cdn.discordapp.com/emojis/839296961944485939.webp?size=128 "SMCPensiveMove")  no idea
vernal crest
# heady crest what

...I don't know how to make that clearer. Can you share your Schedule.json file so I can show you?

heady crest
#

idk why its empty on the page tho

#

or almost

heady crest
vernal crest
# heady crest uh here https://smapi.io/json/content-patcher/4567398f3ecc417581d4e9610b609fa2

Okay see how you've written \"Strings\\schedules\\Maxine:Coffee.000\"? But if you look at your code where you loaded the file into the game, the target is "Strings/schedules/{{modID}}_Maxine" instead. So you need to write \"Strings\\schedules\\{{modID}}_Maxine:Coffee.000\" in your schedule file (and do the same for the other strings too).

    {
      "LogName": "Maxine Schedule Dialogues",
      "Action": "Load",
      "Target": "Strings/schedules/{{modID}}_Maxine",
      "FromFile": "assets/CharacterFiles/Dialogue/Maxine/ScheduleDialogue.json"
    }
heady crest
#

so i need one of those for each dialogue?

#

oh OH

#

nvm i got it now

vernal crest
#

You're welcome

heady crest
#

thanks !! ! ! ! ! !

teal bridge
#

I've decided that I hate monster data. A quarter of the display names are wrong, sprites are missing, dimensions are all over the place, animations sometimes have blank spaces between frames... what an absolute shitshow.

late pewter
#

OH I'M A DUMMY AND DIDN'T EMBED THE TILESETS LOL.

#

Ok, so this is why i wanted to test my map even though it is very not done - I want to get ahead of this before I get very far because it drives me nuts: Does anyone know a reasonable way of avoiding this shadow showing? Do I need more Front Layers??

velvet narwhal
#

i don't know the difference between Front and AlwaysFront, but i also don't make my cliffs close to that point SDVpufferthinkblob you could make that | piece of the cliff on the front layer?

rancid temple
#

I would put the same cliff you have on Buildings there also on Front

#

Because Buildings renders below the player, but when the player is above a tile, they render behind Front

ashen goblet
#

For locations (X, and Y) since I'm making an custom NPC; how do we determine/or get the information of X and Y?

velvet narwhal
#

ah yeah, vanilla maps you'll see a lot of duplicate looking tiles from buildings placed onto front

late pewter
#

Hmm, I'll have to look into this a bit more.

Also, I think embedding the tilesets broke something? My waves are not animated anymore and the docks flash between looking right and looking totally off.

uncut viper
velvet narwhal
#

(FTM also has whereami)

uncut viper
#

theres also a debug command you can type in the console to get the tile you're standing on but i forgor it

ashen goblet
uncut viper
#

yes

#

you can look at the .tmx map files for every location in the game in your unpacked content folder

ashen goblet
#

Got you! Let me check it out

vernal crest
late pewter
#

Yes

#

Just went left to right clicking the little box

uncut viper
#

(debug ppp/debug printplayerpos is the debug command i was thinking of, you can type that into your console too F1F4)

ashen goblet
ashen goblet
uncut viper
#

lookup Anything is a mod you install that lets you hit a h otkey in game to see information about what your mouse cursor is over

#

the debug command will give you the tile coordinates that you are currently standing on yes

ashen goblet
#

Thank you!

velvet narwhal
#

tmx is what the map files actually are, which are readable through tiled

#

!mapmaking

ocean sailBOT
#

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

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

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

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

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

velvet narwhal
#

an npc requires roughly 2 programs open, and about 5+ different web pages SDVpufferclueless

vernal crest
brave fable
#

i'm legally required to mention that you don't need to embed tilesets, and .tsx files load perfectly well

vernal crest
#

Haha I was waiting for you blueberry

late pewter
#

It still looks fine in Tiled, is the thing, so I don't know what's wrong specifically.

#

Let alone how to fix it

ashen goblet
ashen goblet
#

Thank you!

uncut viper
#

i would also look for the Debug Mode mod

late pewter
#

Is it because I have 2 tile sheets named "untitled tile sheet 2"?? I wonder...

ashen goblet
uncut viper
#

i mean its all up to you in the end

ashen goblet
#

Fair enough

vernal crest
#

CJB cheats can be helpful - I use it when it's faster than looking up a console command

uncut viper
#

cjb cheats is helpful sometimes but detrimental others if you forget that sometimes setting things specifically with cjb cheats wont set flags or trigger updates correctly sometimes

ashen goblet
#

I just need the easiest tools to skip to festivals, and test out the game

vernal crest
#

Ohhh like when my negative friendship points from dialogue wasn't working

uncut viper
#

then yeah, the above mentioned mods will be helpful

velvet narwhal
#

though tbh you can do a lot of things just through the console commands

#

world_setdate etc

ashen goblet
#

Thank you

velvet narwhal
#

SDVpufferthinkblob when was that midnight beta? if you're doing this mod in the 1.6.9 beta, some of these mods might not work

heady crest
late pewter
#

My waves work right again!

vernal crest
late pewter
#

Ok, next order of business: Why can I walk on the Ocean???

uncut viper
#

theres no difference between ocean tiles and ground tiles from the games perspective. its just a texture

#

you need to add invisible walls

heady crest
ocean sailBOT
#

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

late pewter
#

Aw heck, i need invisible walls...

vernal crest
late pewter
#

I thought water=T would make them impassible.

heady crest
#

im getting the json holup

brave fable
#

water T makes them wet

vernal crest
# heady crest thought it'd be inconvenient to make ppl read the same thing again but sure http...

As is usual when people say "it's the same error", this is not actually exactly the same error. The error message is the same but the content is different and the cause is different. You can't use tokens when loading files with Content Patcher, so you need to switch to loading both "Strings/schedules/{{modID}}_Maxine" and "Characters/schedules/{{modID}}_Maxine" as blank JSONs and then use EditData to add the actual content to them.

vernal crest
# late pewter I thought water=T would make them impassible.

It is the "Passable" property that affects whether you can walk on them, but you can't rely solely on that because the NPC pathfinder ignores it and tries to make NPCs walk into the water - but they can't actually walk on the water so they get stuck.

ashen goblet
#

I realized some NPC mods have two dialogues when it comes to JSON files, for instance.. the festival folder. My ID, for e.g, could be TESTtest. Some do..

"TESTtest": "Dialogue here"
"TESTtest_spouse: "Dialogue here, but for spouses in-game"

#

How is this done? I want my NPC to also have spouse responses, if that makes sense.

uncut viper
vernal crest
# heady crest you mean like this?

Close, but your FromFile needs to be a blank json, not your ScheduleDialogue.json. And by "blank" I mean people usually have a json called "blank.json" and it's empty except for a set of curly braces {}.

ashen goblet
velvet narwhal
#

depends on context, i would check data/festivals

uncut viper
#

(actually it might not be on that page yet i thought i remembered seeing it somewhere but i dont see where i thought it was explained before oops)

#

but yeah it depends on if the game ever actually plans on checking for spouse dialogue in the first place

#

you cant just put spouse after everything and have it detect it

velvet narwhal
#

(as confusing as it is, some things are in dialogue some other things are in marriagedialogue)

ashen goblet
#

Should I just leave that for last then, and focus on the basics first?

velvet narwhal
#

yes, get your npc into the game without red errors

uncut viper
#

if you're following an example or a guide that uses the _spouse thing somewhere then you can be reasonably confident that it will be detected if you add it too, but its not required

ashen goblet
#

I'm using Gojo's NPC mod as a reference, aside from Tia's wiki tutorial, and they do use _spouse

#

For instance;

velvet narwhal
#

yeah that one's specifically targeting Data/Festivals if you were to try to throw the _spouse in say, Characters/Dialogue, it'll do nothing

uncut viper
#

i think all the festivals check for spouse dialogue?

ashen goblet
#

Yeah that's what I'm currently working on

#

The festivals section

uncut viper
#

yeah, what Avi said. just cause _spouse is checked in one context doesnt mean it'll be checked elsewhere, is all

ashen goblet
#

I'm doing the official dialogues once I'm done with schedule, so that comes a little later

uncut viper
#

if the Gojo NPC mod is updated for 1.6 its probably a decent reference, depending on whether it was using any dependencies or anything

late pewter
#

Well, if ConcernedApe uses this tile for his invisible walls, I guess I shall, as well.

Hey, these don't interfere with fishing, do they? Do i want only a single layer of these, or can i flood fill the ocean?

ashen goblet
#

Yes it is updated as well

ashen goblet
#

For instance;

#

This is mine^

vernal crest
velvet narwhal
ashen goblet
#

Internal being display, or the Unique ID?

velvet narwhal
#

uniqueid, so from tia's guide it'd be replacing WrenSong

vernal crest
#

Unique ID. Display is what it says on the tin: for display

ashen goblet
#

Phew

#

I'm good then

devout otter
late pewter
#

Is there a way to make Tiled show invisible tiles? Or temporarily remove alpha channel from spritesheets?

brave fable
#

you can view invisible tiles from a few methods on the Big Problems board

vernal crest
#

Not that I am aware of, hence my dislike of them. If you know where one is you can use the magic wand (I think?) to find the others on a layer though. Maybe across layers if you have all the layers selected?

#

Oh the same tile tool, not magic wand

#

Confusing

dusty scarab
vernal crest
tender bloom
#

Putting things into the blank json makes them impossible to use tokens or i8n

#

you CAN put things in, it just makes life harder later

#

whereas sticking them in with EditData lets you bring the full power of CP fancy stuff in

velvet narwhal
#

i have 0 idea where the straight load tutorial is coming from, but it definitely makes your life harder

dusty scarab
#

so the blank.json is something that the game loads for NPCs, and then you used an EditData action later to have Content Patcher actually populate it with schedules and stuff to make the NPC work?

#

sorry if I'm asking stupid questions, just trying to make sure I'm understanding the explanations right

rancid temple
#

You're using CP to load the blank json

uncut viper
#

okay so imagine a box—

velvet narwhal
#

some of them don't need blankloads, it's specifically files like these that don't have your npc's .json that you'd need a blankload

teal bridge
#

What is up with Game1.tinyFont. How do you even do this. Why.

latent mauve
#

You can have a single blank.json to use for all NPCs as long as you are loading to unique targets, too, IIRC

rancid temple
#

As far as I'm aware, it should be any json that you need to use tokens for, isn't specific to NPC's

uncut viper
#

yaya, like events too, in locations without any

latent mauve
#

Since you will be using EditData to fill them in by target

velvet narwhal
#

for NPCs specifically, you can get away with just this:

    "LogName": "BlankLoads",
    "Action": "Load",
    "Priority": "Low",
    "Target": "Characters/Dialogue/{{ModId}}_<NPCNAME>, Characters/Dialogue/MarriageDialogue{{ModId}}_<NPCNAME>, Characters/schedules/{{ModId}}_<NPCNAME>, Strings/Schedules/{{ModId}}_<NPCNAME>",
    "FromFile": "data/Blank.json"
},``` because these are technically the only files that have the specific npc name
vernal crest
# dusty scarab why does it need to be blank? I've never made an NPC before, so I have zero idea...

As an example, say my NPC was called "Abagaianye.hiriaNPC_Hiria". I want her to have an event in a custom location I've made called "HiriaHouse". I make a file called "HiriaHouse.json" and then write a code block to Load that directly into Data/Events/HiriaHouse.

However, I've used a token in my HiriaHouse.json where instead of writing speak Abagaianye.hiriaNPC_Hiria I wrote speak {{ModID}}_Hiria. Because CP didn't get to edit the HiriaHouse.json to convert {{ModID}} into Abagaianye.hiriaNPC, the game reads my speak {{ModID}}_Hiria as speak {{ModID}}_Hiria instead of receiving speak Abagaianye.hiriaNPC_Hiria which is what it needs to be able to match up with the fact that my NPC is called "Abagaianye.hiriaNPC_Hiria".

#

So the game goes looking for an NPC called {{ModID}}_Hiria and obviously can't find one because there isn't any.

dusty scarab
#

ooooooh, so it also has to do with the order in which Content Patcher loads things, to make sure it's loading everything in the correct order so it finds the things you want it to find?

tender bloom
vernal crest
dusty scarab
#

yeah, yeah, I think I get it! thank you for the explanation. I'd seen people say previously that you need a glank .json for NPCs, but I never knew the context for why, or how it was supposed to work. thank you for the explanation :3

vernal crest
#

It's not specifically for NPCs, by the way. It's for any asset where you want to use a CP token inside the FromFile and the asset doesn't already exist in the game before your mod creates it. It just so happens that most (all?) of the situations that can occur in are NPC-related.

uncut viper
#

(events)

vernal crest
#

(I guess you can have events without any NPCs in them, so yeah that's true)

uncut viper
#

making new festivals, too

#

not that many people do that

velvet narwhal
#

custom locations need a blank load or else you're writing into the air for events learned that the hard way

dusty scarab
#

to use your previous example, would you still need the blank.json if you weren't using Content Patcher tokens, and typed out the longform name Abagaianye.hiriaNPC_Hiria every single time you used it?

vernal crest
#

As long as you also weren't using i18n

dusty scarab
#

because every call to the i18n file uses a token! :D

vernal crest
#

Yup

dusty scarab
#

I'm learning, I'm learning! SDVpufferbook

ashen goblet
#

Where can I get the list of all the different locations? Including Ridgeside

velvet narwhal
vernal crest
ashen goblet
ashen goblet
velvet narwhal
vernal crest
ashen goblet
ashen goblet
velvet narwhal
#

download them off of nexus or wherever, smapi: patch export Data/Locations

ashen goblet
#

Ahh

#

Got you, thanks

vernal crest
#

Why do you want a list of all the locations anyway?

ashen goblet
#

It's so I can figure out where I want my custom NPC to be at, or where they spawn in!

#

I'm still new to everything modding related, so I'm trying my best

vernal crest
#

Okay fair enough. If you just plop them into someone else's location they won't have a bed though

ashen goblet
#

Yeah, the idea wasn't to have them spawn at somebody's but perhaps they can go in a shop.. maybe

#

Assuming lore-wise, the character lives in the store and such

#

I'm interested in the Ridgeside Village location assets to see where I can fit the NPC I'm makin'!

velvet narwhal
teal bridge
#

Spent way more time than I'd intended on this, but I'd say it turned out as a pretty good demo for a few hours of fiddling around.

vernal crest
#

Fancy!

teal bridge
#

(Probably would have taken half the time if I'd chosen anything other than monsters as the data source, I'm never touching those again.)

ashen goblet
#

Just for clarification; this Unique ID is what the CustomNPCName asks for when it comes to the festival folder, correct? In other words, the Internal name is the same as the UniqueID here?

vernal crest
ashen goblet
#

I see, so if my UniqueID were to be Example.Example2; it's alright to use Example.Example2 for the assets you mentioned?

vernal crest
#

For example, my UniqueID (also called a ModID) is Abagaianye.hiriaNPC. I put that as a prefix before all my maps, locations, portrait and sprite files, etc. E.g., Abagaianye.hiriaNPC_National_Park.

ashen goblet
#

If we were to take the Festivals JSON as a quick example; my UniqueID is F1F4.F1F4Gift

Is using F1F4Gift alone possible, or should I strictly follow the examples you provided?

vernal crest
#

(I use the CP token to do it, so I actually write {{ModID}}_National_Park but then CP converts that into Abagaianye.hiriaNPC_National_Park for use in the game.

ashen goblet
vernal crest
#

To show an example in the context of festival setup like you have, here's my festival placement for Hiria at the egg festival

ashen goblet
vernal crest
ashen goblet
vernal crest
#

Okay yes you do. That's a very unusual internal NPC name but it is certainly likely to be unique lol. Usually people use some version of their NPC's display name (ideally with a prefix to make it unique) but you don't have to do it that way.

ashen goblet
#

As long as it works!

#

I apologize for the confusion and constant fussing--thank you so much for your help !

vernal crest
#

No problem. It can take a bit to wrap your head around some of these concepts at first.

ashen goblet
#

Certainly! Fascinating to learn a new skill though--I've been going at this for 7 hours now aha

ashen goblet
#

Does that work any differently, or should I just add the additional dependencies command?

velvet narwhal
ashen goblet
velvet narwhal
#

yeah in the link it has the extra dependencies list

#

contentpackfor changes depending on the framework that you're using, but you're using content patcher, so that stays

ashen goblet
#

This is my current manifest folder^

velvet narwhal
#

contentpackfor is not equal to dependencies

ashen goblet
#

I'm sorry, I'm not following what you mean ;-;

velvet narwhal
#
  "Name": "MOD TITLE HERE",
  "Author": "AUTHOR NAME HERE",
  "Version": "1.0.0", //your mod's version
  "Description": "DESCRIPTION HERE",
  "UniqueID": "AUTHOR.TITLEHERE",
  "UpdateKeys": ["Nexus:???"], //unnecessary to change if you don't plan to release on nexus
  "ContentPackFor": {
    "UniqueID": "Pathoschild.ContentPatcher"
  },
   "Dependencies": [
    {
      "UniqueID": "Rafseazz.RSVCP", //ridgeside dependency
      "IsRequired": true,
   },
   ],
  
}```
ashen goblet
#

Thank you!

woeful lintel
#

Nobody has been talking about Furniture recently SDVpuffercry

#

I need a pretext to avoid actually working on FF

velvet narwhal
dusty scarab
woeful lintel
#

Having to do some sort of auto version fixes would probably kill me, since I tend to change a lot of small details every time I do a format update.

#

(but FF is open source, so...)

woeful lintel
dusty scarab
#

I made a mod that adds some hoardable stuff to the game. what would I need to do to also have those objects double as furniture, and have it make bigger and bigger piles of scrolls/platinum bars/gold coins/etc the more and more items you place on a single tile?

you know, so you can decorate your house with huge piles of your own grotesque amounts of wealth and tell Joja they need to get on your level

woeful lintel
#

That would need some custom C# code, is your mode CP or C#?

dusty scarab
#

CP

#

and I know less than nothing about C#

woeful lintel
#

the only way I can see it working is having a Furniture for each pile size and add crafting recipes to merge smaller piles into bigger piles

#

I don't know if it's possible to use Furniture in crafting recipes tho

dusty scarab
#

that's alright. I got to ask a question, that and reading the answer is the fun part

ashen goblet
#

Is this still valid? Also, can somebody elaborate what they mean by this? Just so I'm sure

brittle pasture
#

I believe 1.6.9 allows using furniture items as crafting input. for output though you still need Craft Anything Framework

dusty scarab
brittle pasture
#

if you don't specify a gift taste for a specific item the game falls back to universal tastes

ashen goblet
#

Ahhh, makes sense!

#

For example; the Rainbow Shell is a universal like--if I set it to be a hate, that changes it to hate. If not, it stays a universal.

dusty scarab
#

yes :D

ashen goblet
#

Got you

#

Makes sense

#

In that case, I'll just go through the list and map all the items that should be noted, and let the rest be dictated by universal laws in stardew

woeful lintel
#

incrementing a Furniture by placing more of it in the same spot is a neat idea, and I don't think it'd be too hard to do with a bit of C#. I was thinking of making a FF API to allow modders to attach custom C# code to a Furniture action (on right click), which would make piling-up stuff possible.

#

Actually, I want to do that more than working on the FF update.

#

Goddammit, it's going to be hard to focus on my next class with so many ideas in my head

dusty scarab
#

I am sorry for inspiring a new idea? XD

woeful lintel
#

I'm just gonna add this to the FF 3.1 changelogs as "work in progress"

#

For the record, 3.0 is still work in progress

ashen goblet
#

Can somebody elaborate on this as well? What is the point of this function?

brittle pasture
#

so you can set a character to hate all fruits instead of doing it for every fruit item in the game

ashen goblet
#

Got it

ashen goblet
#

Correct?

brittle pasture
#

yes, and any category, I was just using an example

proven spindle
#

It can also be used for other things, like cooking recipes. For example, you can cook an omelet using any egg (chicken egg, duck egg etc) because the recipe data uses the egg category (-5) that all those egg items are part of, rather than specific item IDs. Also useful for making sure a custom item is affected by profession bonuses

lucid iron
woeful lintel
#

that's map shennanigans, I'm not touching that

lucid iron
#

Although, is it already a feature in calcifer yggy

#

Ik better crafting has the bigcraftable can tiledata feature

ashen goblet
#

Does it cause an error, glitch or just make an exception?

woeful lintel
#

@lucid iron when I make an API, people will be able to write custom functions, so they'll be able to use tile actions all they want

woeful lintel
brittle pasture
#

well it does pass the tile point, so you can get the furniture item placed on that point SDVpufferthink

proven spindle
ashen goblet
#

Can you be certain it won't cause an error, however?

hallow prism
#

no

#

the game has priority checks for gift taste

#

with a code that is a bit complex but is able to do stuff like "this generic category is liked, but this item is loved"

#

and other variations

ashen goblet
finite ginkgo
#

yes

hallow prism
#

it should yes

ashen goblet
#

Lovely

#

Thank you

brave fable
#

is it normal for smapi to open SDVpufferthinkblob as in, only smapi

#

text adventure game SDVpufferthinkblob

finite ginkgo
#

I mean, that's pretty standard for me while mods are loading, once mod loading is done the actual game window pops up

hallow prism
#

maybe smapi needs time to wake up

golden basin
#

smapi dail up sounds

dusty scarab
#

is it going to tell me I've got mail once its done dialling in?

thorny tiger
#

it works, thank you so much you absolute legend

golden basin
dusty scarab
#

I see

vernal crest
#

I get nothing but my SMAPI window for 5 minutes when I start my playthrough setup.

#

I use the time to look at what mods need updating and then decide I'm not going to update them SDVkrobusgiggle

dusty scarab
#

hmmm... so I have this as my condition to unlock the building that sells the post-Perfection stuff, but once Perfection was unlocked (via the debug command), the vault still did not show up in Robin's build menu, even though my other stuff, like my custom greenhouses that require Pantry unlock, did. Farm_Eternal is the right command to use for Perfection, right?

uncut viper
#

the debug perfection command doesnt send that mail flag, you might need to go actually view the perfection cutscene at the summit

dusty scarab
#

ok. that boulder that blocks the summit clears after a night's sleep, right?

uncut viper
#

¯_(ツ)_/¯

#

ive never gotten perfection!

#

still dunno what the cutscene even is. ill get there eventually

dusty scarab
#

pfft, day 1 perfection is easy! (with the help of console commands XD)

#

yep, looks like a night's sleep unlocks the summit

#

and you do not seem to need to see the cutscene, either, as there is a message that pops up at the bottom of your screen that seems to set that mail flag the next morning after sleep. nice!
my vault is where it is supposed to be, and all is well with my world :D

#

(now to work on a bigger shed that can hold exactly 1000 machines in a manner where all items can be reached and filled/emptied without needing tools to do so)

sudden bane
#

hiii, first time player like literally never owned a steam acc, but here we are .. can anyone help with modding please, i'm lost and i don't wanna crash the game and stuff 😦

neat pine
#

Making mods or adding them to the game?

thorny tiger
sudden bane
#

yes, npc mapping & i've seen different videos.

#

and i never understood what was vanilla

woeful lintel
sudden bane
#

ohhh, i thought it was like just light mods

#

but i've played some hours, not as long, but i'm able to farm properly now and i guess guides help a lot.

#

not a fishing gal, but trying.

#

so yea

severe wren
#

Do you guys know a tool I can use to make portraits and spritesheets on mobile

dusty scarab
#

nope, vanilla is the original, plain, unaltered game. just like vanilla flavor is plain, unaltered ice cream

dusty scarab
sudden bane
dusty scarab
#

well, this channel is for help with making mods. I think that you want the Modded Farmers channel, as they've got a fancy command for getting started with some popular mods :D

#

I think it's !gettingstarted or something

thorny tiger
#

vanilla isn't unaltered

#

it has vanilla in it

#

unaltered would be if you didn't put vanilla in it

#

it's not a starting point in ice-cream like you don't put the strawberry in after the vanilla you put it in instead

dusty scarab
#

yes, but the people who originally came up with the term 'vanilla' to refer to games didn't know that, and I was trying to give a bit of background as to where the term vanilla came from

thorny tiger
#

right but

#

in terms of ice cream

#

that would be confusing

#

if you knew how ice cream worked

#

you might then think that vanilla is slightly altered like they originally thought

#

when it's just not that in games

#

ice cream or flavours in general might be the root of it but they are different so it doesn't really clear it up

dusty scarab
#

look, if people said they wanted to play the Sweet Cream version, then it would be correct, but people seem to think that vanilla is the 'original OG flavor of ice cream', hence the origin of the term

#

you can blame WoW players for that, which should really tell you a lot of how that term originated. we.... we were not the sharpest bulbs in the box or the brightest tools in the shed

thorny tiger
#

no I reckon you probably were the sharpest bulbs in the box

#

unfortunately

dusty scarab
#

being broken doesn't count XD

thorny tiger
#

anyway moving on from ice cream etymology

#

trying to develop my content patcher skills

#

I've made a fish (forgot to make it edible but will do that at first opportunity)

#

what should be my next challenge

#

a crop?

dusty scarab
#

crops aren't bad! a crop mod was my first mod ever

thorny tiger
#

crop it is

#

a lot of pixel art upcoming

#

"art"

woeful lintel
#

they aren't hard to do with 1.6 data, maybe even easier than fishes

thorny tiger
#

(im not very good)

thorny tiger
#

I'll probably make like a green potato

#

then make a crafting recipe for green chips with oil and green potato

#

and pair that with my green fish and make green fish and chips as a cooking recipe

#

that covers quite a few bases

#

(i made a green fish and now i need to do something with cooking and i don't wanna make another fish)

brave fable
#

i think once you've made a fish, an object, and two different recipes, a good next step would be real-time raytracing

thorny tiger
#

when you say real-time raytracing

#

you mean what now

brave fable
#

a workable simulation of global illumination

#

just to cover your bases

thorny tiger
#

hmmmmmmm

#

@sarcasmdetector

#

SDVdemetriums isn't gonna help me with this one

#

alright well that sounds complicated

#

so im going to not do that

#

and instead I'll make a node in the mines or something

#

can't be that hard surely

#

this is exciting

dusty scarab
#

you could always jump straight into the pits and make a dungeon with radiant maps like Skull Cavern and monsters that get tougher the deeper down you go

hallow prism
#

"i started going on hike the week end, what is a nice next goal? 5 hours hike with a picnic in the middle?"
"what about climbing the everest next instead?"

thorny tiger
#

that sounds like a lot of art and a lot of mechanics I haven't looked at the documentation for

hallow prism
#

this is very serious scope creep 😄

#

yes, a node in the mine sounds reasonable and doable if you use Item Extension

thorny tiger
#

alright guys I made a fish therefore it's time to make stardew valley expanded expanded

hallow prism
#

it can drop custom stuff, or vanilla stuff if you want to keep it simple

thorny tiger
hallow prism
#

then do it step by step, but it's doable yes

#

(and you can do the steps in different order, first the node then the item ore then the item bar then the machine, or first the item then the machine then the node)

thorny tiger
#

true

#

realistically I'll make the node to make sure it exists then make the item to make sure it drops fine then make the bar and try to make the furnace interaction

dusty scarab
#

hey, that's why I foreworded it with 'if you want to jump into the pits' XD

blissful panther
fleet crystal
#

Does anyone know how to setup pathing for custom location?

vernal crest
fleet crystal
#

My npc just walks into the void on custom maps

vernal crest
fleet crystal
#

Yes I’m so confused

dim dock
#

i finally made my first mod! and... idk what the skirt is doing

#

ive been trying so hard to get it to work but i cant understand where im going wrong LOL

vernal crest
fleet crystal
#

I’m going to fix that

#

How do you make a npc use a door

vernal crest
fleet crystal
#

He walks straight over the building layer

vernal crest
fleet crystal
#

No I only have one building layer

#

I re check and it’s all in building I’m so confused why he’s walking into the void

#

This is the schedule or the beginning where I put the custom location

brave fable
#

it's incredibly hard to read text in photos

fleet crystal
#

I’ll try screen shot

thorny tiger
#

copy paste

fleet crystal
#

{
"fall": "610 Custom_House 7 6 2/730 Town 63 14 2 Sitting/930 Town 41 72 2 Drinking/1030 Custom_Village 11 14 0/1130 Custom_House 10 14 2 Sitting "Strings\schedules\micheal:spring.001"/1230 Custom_House 7 6 2",
"spring": "610 Custom_House 7 6 2/700 Town 26 29 2 Reading/930 Town 26 29 2/1030 Custom_Village 11 14 0/1130 Custom_House 7 6 2",
"summer": "610 Custom_House 7 6 2/700 Town 63 14 2 Sitting/930 Town 41 72 2 Drinking/1030 Custom_Village 11 14 0/1130 Custom_House 7 6 2",
"winter": "610 Custom_House 7 6 2/730 Town 63 14 2 Sitting/930 Town 41 72 2 Drinking/1030 Custom_Village 11 14 0/1130 Custom_House 10 14 2 Sitting "Strings\schedules\micheal:spring.001"/1230 Custom_House 7 6 2"
}

#

i just dont know why hes walking past the building layer

next quarry
#

content patcher question:
does anyone know a nice way to apply a map change that is only present for when an event is happening? or would it make more sense to work with temporary actors?

velvet narwhal
next quarry
velvet narwhal
#

If it's all furniture, uh, you'd have to finagle one of the fancier commands with depth in their requirements

next quarry
#

I see SDVpufferthinkblob
I just want to add a custon background layer ontop of the current one as a background+1
I will try to mess around with When conditions a bit more to apply a overlay change
and if that still does not work I'll cry and try making it work in a different way /lh SDViconskaterboi

velvet narwhal
#

if you have an 'update' onlocationchanged for that when condition, you can set it to a mailflag and map changes inside of an event actually counts

next quarry
#

what do you mean by mailflag?

velvet narwhal
#
      "LogName": "Lance's Scar",
      "Action": "EditImage",
      "PatchMode": "Overlay",
      "Update": "OnLocationChange",
      "When": {
        "HasFlag": "{{ModId}}_Scarred",
        "Portrait": "Vanilla Compliant"
      },
      "Target": "Portraits/Lance_Spring",
      "FromFile": "assets/{{TargetPathOnly}}/Lance/Vanilla Compliant/LanceScar.png"
    },```
an ex from one of my crazier things
so inside of the heart event i actually do: `addmailreceived {{ModId}}_Scarred`, force a `changeLocation` inside of the event, and then if i need to get rid of it in the event i just do `addmailreceived {{ModId}}_Scarred false` and `changeLocation` again
rancid temple
next quarry
#

Okay, I think this helps me for even more stuff then the specific issue I just had SDVpetcatsad
that is really cool thanks guys! :D

velvet narwhal
#

4am me can't remember how to describe laymen terms SMCKekLmaoDog

next quarry
#

lmao, you're fine! I got it somehow :D

bronze jungle
#

what graphics api stardew valley uses on linux?

#

nvm found it (OpenGL)

blissful panther
#

That's what it uses on everything!

#

Well, consoles aside.

bronze jungle
#

are you sure? at least wikipedia says monogame uses directX on microsoft platforms

blissful panther
#

MonoGame has a DirectX version, but Stardew just uses the cross-platform OpenGL version on everything.

bronze jungle
#

ah I see

calm nebula
#

So stardew directx version when DH?

#

I believe in you

blissful panther
#

Hey, I've gently poked at that as a suggestion for a bit! It is better on Windows!

calm nebula
#

God, I miss how easy discriminated unions are in Rust

#

I'm not going to elaborate

#

Also implementing your trait on someone else's type

fleet crystal
#

Does any one know why a custom npc keeps walking into void and through buildings layer

spice inlet
#

have you considered turning the custom npc off and on again?

fleet crystal
#

Trust me I tried lol

brittle ledge
#

That's usually either a schedule or a map problem. Are they on a custom map?

fleet crystal
#

Yeah they are on a custom map

brittle ledge
#

Double check your warps in and out. If you want to verify it's a map problem, have them wander the Bus stop or another vanilla location and see if they move properly.

#

It could also be a schedule problem where your destination isn't valid or they don't have a valid way to get there (e.g., a bad warp or a blocked path)

fleet crystal
#

My warps work perfectly and I just had him on a vanilla path and it worked 😭 I’m using the bus stop as a path way connecting the maps

rancid temple
#

What kind of warps are you using on the custom map?

fleet crystal
#

Warps through tiled and I have a warp in my content

rancid temple
#

A TouchAction Warp?

fleet crystal
#

Yes

rancid temple
#

Those don't work for NPC's

latent mauve
#

Try adding a Warp through the Map Properties

fleet crystal
#

It’s only when you click on the house from the outside I’m trying to make the the Npc leave the house but whenever he leaves he walks sideways into the void

#

I already have a warp through map properties

rancid temple
#

There are several different kinds of warps available, a TouchAction Warp is the kind of that happens when you step onto a tile

#

An Action Warp is the kind that happens when you right click on something on the Buildings layer

#

There's the Map Property Warp that functions like a TouchAction Warp but works for both players and NPC's

latent mauve
rancid temple
#

There's also Action LockedDoorWarp that's usually used for NPC houses

latent mauve
#

For whatever map he is walking through void on

calm nebula
#

Remind me in 3 days to look at the dotnet string rehash code

patent lanceBOT
#

I'll have you know atravita I am SO MUCH MORE than just a reminder bot. but fine. (#6300706) (3d | <t:1729174188>)

fleet crystal
#

Ughhh I’ve tried everything I’ve checked like ten times if anything was blocking it

#

It might be bugged 😦

next quarry
#

can you send a screenshot of your custom map with just the building layer/layers turned on (visible)?

#

if not that's also totally fine, I get that you checked multiple times by now SDVpufferpat

rancid temple
#

The base Buildings layer is the only one that has collision, but if you have Passable tile data on a Back layer tile that will also have collision

zenith robin
# lucid iron you can always make UI3 <:PecoSmile:720612804511531008>

You said I can always make UI3 as long as it's all new code, but if I make the mod without looking at the code from UI2 and there are some things that just happen to be the same use to how they need to be implemented, I am fine right? I don't really know much about the legal part of making what would essentially be a successor mod.

latent mauve
#

We probably should have a note somewhere on the mapmaking page that layers with numbers do not retain the normal properties of their base layers and only impact the drawing z-index

next quarry
#

I agree TCatnod

rancid temple
#

Like this?

latent mauve
#

I think the last line probably isn't quite clear enough

#

The explanation about the drawing layers is fine, but people still expect Buildings2 to have collision, for instance, because it isn't mentioned

zenith robin
#

I think it should be worded something akin to "Tile properties must be set on the default layer to function. Tiles on layers other than the default layer do no have collision."

#

yeah, I guess that would require more wording

latent mauve
#

And Tile properties implies TileData objects more than anything else to me, not necessarily collision?

rancid temple
#

Well, it's true that they only work on the base layer

velvet narwhal
#

tile properties require numberless layer-names to function SDVpufferthumbsup

zenith robin
rancid temple
#

Mk, added

fleet crystal
#

im just so confused idk if theres something wrong with my map or schedule

latent mauve
#

Can you use the eye symbol to turn off everything but the Buildings layer?

next quarry
#

^this :3

latent mauve
#

It'll look a little funky but it's easier to check for NPC/player barriers that way

fleet crystal
sonic mortar
lucid iron
sonic mortar
latent mauve
# fleet crystal

okay, so unless the warp is somehow taking them behind the house or within the fenced area, they should have collision blocking them from walking off map.

#

Could put Building tiles on any edges where you don't have warps to be safe, but which way is he walking into void again?

fleet crystal
#

hes walking towards the right

latent mauve
#

Also, I am wondering, since looping NPC paths is an issue do you have a warp on the right behind the fence that goes to the same map as where you are going from the bottom?

#

I am curious as to if the pathing is detecting that there are two different warps to the destination, so the NPC is trying to go there to use that warp instead.

fleet crystal
#

there is no warp for the fenced in area

latent mauve
#

ok

#

And I'm assuming he's outside the front door of the house initially, yeah?

rancid temple
#

Not sure if looping paths being fine is a vanilla thing or because of SpaceCore

fleet crystal
#

i just dont understand whats wrong with it

rancid temple
#

I know they cause longer loading times while it calculates the shorter path for every NPC

#

Have you shared the schedule already?

fleet crystal
#

"spring": "610 Custom_House 5 6 2/630 Custom_House 7 22 2/650 Custom_Village 4 23 2/710 BusStop 36 5 2/730 BusStop 20 18 2/800 Town 26 30 2 Reading/930 Town 26 30 2/1000 Town 41 72 2 Drinking/1200 Town 16 96 2/1400 BusStop 21 19 0/1420 BusStop 35 5 0/1430 BusStop 35 0 0/1450 Custom_Village 4 9 0/1500 Custom_House 7 20 0/1520 Custom_House 9 13 2 Sitting "Strings\schedules\micheal:spring.002"/1650 Custom_House 7 14 0/1700 Custom_House 7 9 0/1710 Custom_House 7 6 2"
}

#

this is the only one i added the custom location too

latent mauve
#

Okay, and Custom_House is the interior while Custom_Village is the outdoors from your screenshot?

fleet crystal
#

yes

rancid temple
#

Have you tried simplifying the schedule or stripping out different parts?

fleet crystal
#

ive been up all night doing it it seems to only get better when i add more like shorten the distant between paths he walks off the map at 650 Custom_Village 4 23 2 to the right im so confused

#

i want him to move down

rancid temple
#

Well, if you want to zip your project and send it I could do some testing. Not really sure what else to suggest at this point

calm nebula
#

Ngl it's probably a warps issue

fleet crystal
calm nebula
#

Just. Saying.

fleet crystal
#

ive checked the warps i can screen shot them all

rancid temple
#

Two separate mods? I just meant zip up the whole mod

latent mauve
#

And just to verify, there's nothing in the SMAPI log when this is happening?

fleet crystal
#

yeah two sepreate mods one for the house one for the npc i didnt know how to combine them no it show no error message

latent mauve
#

Second question: Does the NPC mod have the house as a dependency in its manifest (even as a false one)

#

To rule out mod load ordering shenanigans.

rancid temple
#

You can zip them to the same directory. Combining them is as simple as making them all part of the same content or having that content include the appropriate files. Not really an issue at the moment though

latent mauve
#

roku can probably also check that when you give them the files though, so

rancid temple
#

Yeah, though load order should generally have some errors

#

I'm thinking some combo of either warps or schedule, since those would just fail silently

fleet crystal
rancid temple
#

(hoping not schedule lol)

fleet crystal
#

thanks for helping me it means alot

drowsy pewter
#

Does anyone know a command for completing the players entire shipped items catalogue? I cant find it just scrolling through the debug commands page, theres a lot

#

do i just use the perfection command?

rancid temple
#

Can't be sure there's no Console Command for it, but that's the only base debug command I can see that touches shipped stuff

drowsy pewter
#

I'll have to be careful not to let this save affect my steam achievements then haha

rancid temple
#

Lol

#

I wonder if offline mode would affect that

latent mauve
#

I've already given up after the time I accidentally added the Joja achievement to my Steam achievements while testing a mod xD

rancid temple
#

Depends on how the game implements achievement tracking SDVpufferthinkblob

latent mauve
#

(curse you, my need to see how the Joja victory scene played out with my edits!)

drowsy pewter
#

In 1.6 they changed it so you get the steam achievement if you even open a save which has already earned the achievement

thorny tiger
#

correct me if I'm wrong but I think you can remove steam achievements with the console?

drowsy pewter
#

Really?

rancid temple
#

Just gotta put this project on hold until you get all the steam achievements /j

thorny tiger
#

I removed achievements from an entire game once because I didn't realise it was spamming my steam achievements

drowsy pewter
lucid iron
#

Just don't launch by steam

drowsy pewter
#

sorry, no mod updates till then

lucid iron
#

I been afraid to cus beta auto updates when I do that

thorny tiger
rancid temple
drowsy pewter
#

anyways, not a big deal, just gotta juggle a backup save

#

I set debug perfection and it didnt even fill in the shipping collection 😅

thorny tiger
#

you can reset individual achievements or all achievements

#

with the client console

drowsy pewter
#

Cool!

thorny tiger
rancid temple
#

Does CP convert NPC disposition to Data/Characters?

drowsy pewter
#

yeah

#

if the format is pre 2.0, of course

latent mauve
#

Migrations won't happen in some of the newer formats, yeah?

rancid temple
#

Yeah, had to change that back lol, was wondering why it was set that way

drowsy pewter
#

ahhh wait i can just check what items are needed for the shipping collection using lookup anything. Duh!

latent mauve
#

Probably just confusion because of how we were talking about Data/Locations a few days ago and how you needed newer formats for some features, but we didn't mention that the CP migration feature and Custom Locations was for older formats.

#

Pretty sure that got overlooked

rancid temple
#

Yeah I mean, there's a lot in here I would do differently, just trying to see what's the minimal required to get it to work, if that's possible lol

ocean sailBOT
fleet crystal
#

I was checking your level lmao

rancid temple
#

:P you can also do the bot commands in #governors-mansion if you want to be more sneaky about it /lh

fleet crystal
#

Thank you :p

rancid temple
#

Okay, primary suspect right now is that your schedule points are ending on warps, which causes them to warp but messes with their pathfinding from there

#

Generally speaking, you shouldn't micromanage your NPC's schedule

fleet crystal
rancid temple
#

You wanna pick a time for them to start going to a place and then make sure they have enough time to get there, but your schedule points should just be primarily major stops

fleet crystal
#

Alrighty sounds good

#

I’ll try that next time I just thought more warps equal better but that was not the case lol

latent mauve
#

Nah, usually less warps is better. 🙂

#

The game will try to connect them, so it's better not to confuse it too much.

rancid temple
#

If you have like a very specific vision for how your NPC should reach a place, by all means add more schedule points, just follow them around and make sure the timings are gonna work

#

And also make sure to not end any schedule points on a warp

fleet crystal
#

Alrighty will do

rancid temple
#

Schedules are kind of annoying to test since you can't just reload the patch while in a save, but you can go back to title, reload your patch and then reload your save

#

So you can save a little bit of time that way over fully quitting

latent mauve
#

Yeah, definitely don't reload a schedule patch while in game, this is how I ended up with my NPC accidentally murdering an entire forest by pathing into the trees. xD

rancid temple
#

Lumberjack mode activated

#

Obligatory: the NPC creator isn't updated and you should be using the new Data/Characters system rather than relying on CP to migrate your dispositions. It's technically one of those "it's fine until it isn't anymore" situations though

velvet narwhal
#

I'm surprised it still works tbh

thorny tiger
#

gonna ask this now as I WILL forget that it's a thing by the time I need it - how can I use multiple JSON files for one content patcher mod? (e.g. MNF has more json files in its Data folder)

fleet crystal
#

Yeah you’re right I just thought it would be easier and when I unpacked my game I couldn’t find my npc dispositions

latent mauve
#

(the sound of an NPC colliding with a tree enough times in a row to chop it down is HORRIFYING by the way, do not recommend)

rancid temple
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:

rancid temple
#

Which funnily enough, Tia's guide also has some simple examples of using Include

tough crater
#

Hi! I'm very confused on something. So I'm following the process of NPC building on this page: https://stardewmodding.wiki.gg/wiki/Npc_template. When I got to the "ScheduleDialogue.json" section, I got confused by the tokens being used. Specficially, I'm stuck on this:
"{{Edelweiss}}:Spring_Sleepy.1": "{{i18n:EdelweissSeung:Spring_Sleepy.1_0}}",

I'm looking at an npc mod's file and their format of things was:
"spring_17.100": "<text>",
"JojaClosedA":"<text>",
"JojaClosedB":"<text>",
"JojaClosedC":"<text>"

I thought the format for these was supposed to be:
"<season>.000": "<text>",
"<Map>.000: "<text>",

Also where did JojaClosedA/B/C come from? Is that from a dependency mod?

hallow prism
#

so

#

the format of dialogue accept keys of all sort as long as it matches with the corresponding schedule stuff

velvet narwhal
#

I think I ripped schedule dialogue straight from strings/schedule because the format hated everything I did. I'm on mobile so I can't check the unpack but it needs specific formatting

hallow prism
#

the author here just wanted them to be in format modid:mykey

#

the .number isn't mandatory, it's just what CA liked to have because it made sense for those

tough crater
#

In terms of CSS, it's basically just adding your own class name and rolling with it ?

hallow prism
#

i can't really draw comparison with CSS

tough crater
#

Don't worry, I ate an edible so most of what I'm saying and thinking is absolute nonsense lol

lucid iron
#

i think the .number might have been code line numbers blobcatgooglyblep

tough crater
#

WAIT WHAT

lucid iron
#

esp for stringsfromcs

tiny zealot
#

chu, throwing gasoline on the fire:

tough crater
#

Now that you mention it, it probably was from their CS code

hallow prism
lucid iron
#

but like lumina said it's not important

rancid temple
#

I always assumed it was indicative of CA's intention to have multiple choices

lucid iron
#

u can use roman numerals if you want

tough crater
#

I'm not hallucinating 🤣 my brain is just scrambled lol

hallow prism
#

anyway, if you want stuff in format mymod_myscheduleentry it should work if the corresponding key is used in the right place too

tough crater
#

So does that mean in this:
"{{Edelweiss}}:Spring_Sleepy.1": "{{i18n:EdelweissSeung:Spring_Sleepy.1_0}}"

I don't need the semicolon for this?
"{{Edelweiss}}Spring_Sleepy.1"

#

or write it like {{Edelweiss}}_Spring_Sleepy.1"

lucid iron
#

yea whatever floats your boat

#

just make sure u are use correct key throughout

velvet narwhal
#

Yeah don't use the same dynamic token I use for the layout

hallow prism
#

and you don't need the token

#

(and if you want one, make your own 😄 )

velvet narwhal
#

It's a dynamic token because the real internal name is {{ModId}}_Edelweiss

#

Leaving it as just {{Edelweiss}} without doing anything to it will just get smapi to scream at you, which is purposefully why I did it SMCKekLmaoDog

hallow prism
#

"i like to see the world burn (but with a good logging)"

tough crater
#

Highkey I love that LogName exists because when I was doing debugging on my last attempt, that was the ONLY way for me to target where the coding issues were

velvet narwhal
#

No it's purposeful for a plug and play, if someone gets a red smapi error I know exactly where, why and how

thorny tiger
#

yo

#

having some issues with textures

#

how can i use a second texture

#

do i need to make a second load action or what

#

because im seeing assets which are like 78265982689 images in one png but idk how it knows which one to point to

rancid temple
#

Depends on where you're doing it, but if there's a SpriteIndex field you can use that to choose which sprite to use

thorny tiger
#

what is that

rancid temple
#

The size of each index depends on where you're using it, but Objects are 16x16 so your first index would be the top left at 0, the next one would be 16 pixels over at 1, when you hit the end of a row it drops down and goes along the next row

#

Where are you trying to use this specifically?

thorny tiger
#

idk what you mean by where

#

im doing everything in content.json and referencing everything in assets

rancid temple
#

Like what are you making, a new object?

thorny tiger
#

yes

rancid temple
#

And your loaded texture has multiple sprites on it?

thorny tiger
#

no

#

is that what i should be doing

rancid temple
#

Then you can start there, increase the size of your sheet and add new sprites to it

#

If you increase downwards, just know that you should avoid increasing to the right after that

#

So I would start by increasing to the right for a bit and then start adding additional rows downwards if necessary

thorny tiger
#

ok so make it how many long

rancid temple
#

Each sprite is 16x16 so if you can show a grid that'll help you keep your items separated

velvet narwhal
#

game automatically detects the "end" of the png, so you can make it one really long strip if you so pleased

rancid temple
#

It's up to you really, whatever you're comfortable working with

thorny tiger
#

ok fair enough#

#

any recommended site for turning sprites into a spritesheet or should i continue to use piskel

#

its really slow at importing if i select spritesheet for some reason

rancid temple
#

It's important to know what you're working on, such as if you're adding new objects or shirts or pants or whatever, because each thing has different rules about how you choose where in a texture you're using or what size that texture has to be

velvet narwhal
#

iirc shirts is like..... 8x16 or something right? SDVpufferpain

rancid temple
#

I dunno, I use dedicated programs rather than websites

#

Shirts has to be the full width of the original shirt png

#

But you don't have to use the whole area, just have to match the bounds

#

Because it has very hardcoded specific logic about how it chooses where the different sides are and where the dye colors are

#

Some things like fruit trees are a specific width and use only a row index to decide what your tree texture is

velvet narwhal
#

(i need to backread stardewui to see if chu figured out the ISalable because maybe i might take a crack at the #demonopolize-marnie

velvet narwhal
thorny tiger
#

is SpriteIndex 1 or 0 index

velvet narwhal
#

starts at 0

rancid temple
#

Trying to think if there are any that start at 1

thorny tiger
#

so the first item will be Index 0?

rancid temple
#

Yeah

thorny tiger
#

i ask because the cornucopia more crops doesnt seem to reference any index 0

rancid temple
#

Oh, because 0 is default

brittle pasture
#

it seems to be because cornucopia's object index 0 is some unused thing

rancid temple
#

I was like looking and thinking "why is that" and I do the same shit lmao

thorny tiger
#

the spritesheet doesnt seem to be empty at the top left