#making-mods-general

1 messages Β· Page 79 of 1

shrewd path
#

I'll make a note of that for later

rancid temple
#

Yeah, having it working now might be a good sign to take a break lol

hallow prism
#

that, it's better to do those changes rested, so if you miss a comma or something it's not too frustrated

#

(and stay on a success πŸ˜„ )
but overall it can make the code shorter and so easier to read

thin mason
#

do not recommend

rancid temple
#

I do all my best modmaking at 4 in the morning on less than 3 hours of sleep

safe mortar
#

My brain aches but I got it working! thank you!!!

shrewd path
#

Yeah Its' been a fight with this code and it's been exhausting, My 2.0 version of this will have the seeds available via Heart Events via a New NPC I am going to add but for now I am just trying to build up to the skills for that

hallow prism
#

it's pretty reasonable, doing step by step is a good idea

#

and knowing how to send mail/use trigger will always be useful too

rancid temple
#

NPC's are a lot of different systems, so getting practice before tackling them can be good

shrewd path
#

And then beyond that trying to get combability for events in Expansion area mods (Zuzu, Scarp, Ridgeside and Mt Vapius being the four I want to target)

hallow prism
#

well i'm around to discuss about VMV if you need that when you'll be ready

shrewd path
#

I look forward to being able to do that someday Mt Vapius is what kicked this all off

hallow prism
#

i'm glad it inspired you πŸ™‚

whole raptor
#

SDV i18nifier is now live with a new version!

Changes:

  • Config & Gift Tastes converter
  • Changelog to see how rarely I touch this app
  • Hopefully easier to understand instructions
  • Bit less dumb and eats less repeated code (that's just for me)

https://nom0ri.github.io/sdv-i18nifier-app/

lucid iron
#

wow a fancy reactive app DokkanStare

whole raptor
#

I hope it looks fine on other monitors, cause I had to do some weird fuckery so it won't uselessly allow scrolling when it doesn't need to...

lucid iron
#

there is some box shenanigans happening here

uncut viper
#

the boxes dont quite grow as much as they should on my big monitor but its very minor

lucid iron
#

hm the routing is broken

#

this goes to 404

whole raptor
lucid iron
#

a concern if i do like, reopen closed page

whole raptor
#

Ah, forgot to do something about direct links

#

Does the config page work if you go there through sidebar normally?

lucid iron
#

yea that is fine

#

its only direct links, which happened bc i closed it then tried to reopen

#

i think u can also just block browser history for these routing links

#

since u mentioned it i tried different resolution, but i imagine u dont expect ppl to use this on a phone blobcatgooglyblep

whole raptor
#

Thought about for a second, but who the hell would convert their mods on a phone πŸ˜…

lucid iron
#

yea lol

uncut viper
#

you would be surprised

lucid iron
whole raptor
#

Yep, would have to do a whole different layout for mobile

lucid iron
#

if u r bored enough u can do the ol responsive hamburg menu thing

whole raptor
#

I'll think about mobile responsiveness when I squash the rest of CSS bugs πŸ˜…

uncut viper
#

or just go full responsive design in general. ill admit thats probably not worth the effort in this case tho bc i do still agree no one would really likely use it on mobile

#

hard to retrofit a design to be responsive if it wasnt designed that way from the start

lucid iron
#

i think i just let bootstrap decide what do about the grids when i did stuff like this in the past

uncut viper
#

pretty sure thats a big part of why it was so popular for a long while

whole raptor
#

Eventually I'll probably try to make it responsive, since tbh it was haphazardly thrown together when I did the dialogue convert ages ago and then I kinda forgot about it SDVpufferblob

lucid iron
#

wow is bootstrap not popular anymore

#

i am lagging behind the webdev LilyDerp

uncut viper
#

as with all things enterprise, it will still be in use until the end of time

#

by a lot of companies

#

that said i think its Tailwind plus various UI libraries now

#

s'what i used for my BETAS docs

lucid iron
#

Tailwind (Japanese: γŠγ„γ‹γœ Tailwind) is a non-damaging Flying-type move introduced in Generation IV.

uncut viper
#

Tailwind CSS SDVpuffersquee

whole raptor
#

I did use Tailwind on that app, but I was too used to bootstrap, so I wasn't sure what I was doing hah

lucid iron
#

huh it seems nice PecoWant

teal bridge
#

Thumbs down for Tailwind. Utility frameworks FTL.

whole raptor
#

Or rather was forced to, cause Vue doesn't (or didn't) like Bootstrap

teal bridge
#

It's not that it looks bad or anything, just the practice of adding 30 utility classes to do one semantic style is totally anti-CSS, it's barely better than inline styles.

uncut viper
#

ask any sizable group of webdevs if they like tailwind or not and you will get basically a 50/50 split

lucid iron
teal bridge
#

Yeah, you will.

safe mortar
#

thanks to those who answered questions and helped me finish my first mod ^.^

sweet sphinx
#

is this not how you add a pet?

lucid iron
#

are you hoping to add another cat breed

sweet sphinx
#

yeah

teal bridge
#

The split in my experience is largely along track lines (devs who actually like web development vs. devs who just want to get that part over with).

lucid iron
#

need TargetFields to drill down

sweet sphinx
#

to what?

lucid iron
#

drill down to where the Breeds key is at

uncut viper
#

(i actually like web dev and i like tailwind a lot so i dont know which track line you were imagining there)

teal bridge
#

It's OK, I forgive you. This time.

lucid iron
#

next time im forced to website i'll probably attempt qt wasm instead of actual webdev LilyDerp

sudden urchin
#

is it possible to mod seasonal weather events like the green rain??

safe mortar
#

@velvet narwhal @spice inlet Published my mod-- thanks! (it's in the #1292662310305005609 channel if you want to check it out)

uncut viper
#

i would check out the Cloudy Skies framework

#

for custom weather events

sudden urchin
lucid iron
#

in your case you need "TargetField": ["Cat", "Breeds"]

uncut viper
#

im not familiar with the framework myuself but i imagine you can use the same conditions you'd use to tell the weather to happen to set up a conversation topic or something

lucid iron
#

then u can add "Entries": {"YourBreed": ... }

uncut viper
#

or use content patcher tokens to check for the custom weather for conditional patches

#

(or custom cloudy skies tokens i dont remember/know)

sweet sphinx
#

Like this?

lucid iron
#

get rid of the Fields level

sweet sphinx
lucid iron
#

entries is a dict

#

i also recommend you just try things in game

#

error is fastest way to learn sleep

uncut viper
#

(Dictionary: { }. List: [ ])

sweet sphinx
#

I am trying, and it keeps giving me the same error that I can't read

teal bridge
uncut viper
#

if you ever get stuck on an error you can post it here too (using the smapi uploader) and someone can tell ya how to parse it

sweet sphinx
#
StardewModdingAPI.Framework.Exceptions.SContentLoadException: Failed loading asset 'assets/Cat/CatSkin.json' from SMAPI\reshka.moreanimalvarients: an unexpected error occurred.
 ---> Newtonsoft.Json.JsonReaderException: Can't parse JSON file at C:\Users\Phoenix\Documents\My Games\Stardew Valley\Mods\My Mods\[CP] MoreAnimalVarients\assets\Cat\CatSkin.json.
Technical details: Cannot deserialize the current JSON array (e.g. [1,2,3]) into type 'Pathoschild.Stardew.Common.Utilities.InvariantDictionary`1[Newtonsoft.Json.Linq.JToken]' because the type requires a JSON object (e.g. {"name":"value"}) to deserialize correctly.
To fix this error either change the JSON to a JSON object (e.g. {"name":"value"}) or change the deserialized type to an array or a type that implements a collection interface (e.g. ICollection, IList) like List<T> that can be deserialized from a JSON array. JsonArrayAttribute can also be added to the type to force it to deserialize from a JSON array.
Path 'Changes[0].Entries', line 7, position 21.
   at StardewModdingAPI.Toolkit.Serialization.JsonHelper.ReadJsonFileIfExists[TModel](String fullPath, TModel& result) in E:\source\_Stardew\SMAPI\src\SMAPI.Toolkit\Serialization\JsonHelper.cs:line 86
   at StardewModdingAPI.Framework.ContentManagers.ModContentManager.LoadDataFile[T](IAssetName assetName, FileInfo file) in E:\source\_Stardew\SMAPI\src\SMAPI\Framework\ContentManagers\ModContentManager.cs:line 180
   at StardewModdingAPI.Framework.ContentManagers.ModContentManager.LoadExact[T](IAssetName assetName, Boolean useCache) in E:\source\_Stardew\SMAPI\src\SMAPI\Framework\ContentManagers\ModContentManager.cs:line 120
   --- End of inner exception stack trace ---
   at StardewModdingAPI.Framework.ContentManagers.ModContentManager.ThrowLoadError(IAssetName assetName, ContentLoadErrorType errorType, String reasonPhrase, Exception exception) in E:\source\_Stardew\SMAPI\src\SMAPI\Framework\ContentManagers\ModContentManager.cs:line 319
   at StardewModdingAPI.Framework.ContentManagers.ModContentManager.LoadExact[T](IAssetName assetName, Boolean useCache) in E:\source\_Stardew\SMAPI\src\SMAPI\Framework\ContentManagers\ModContentManager.cs:line 132
   at StardewModdingAPI.Framework.ModHelpers.ModContentHelper.Load[T](String relativePath) in E:\source\_Stardew\SMAPI\src\SMAPI\Framework\ModHelpers\ModContentHelper.cs:line 57
   at ContentPatcher.Framework.Patches.IncludePatch.UpdateContext(IContext context) in E:\source\_Stardew\Mods.Pathoschild\ContentPatcher\Framework\Patches\IncludePatch.cs:line 107.```
This is what I get
uncut viper
#

(using the smapi uploader)

heady crest
#

cant have these on maps???

brittle pasture
#

if you added them with Tiled, no

#

need a CP patch

lucid iron
#

but the forced-to-website scenario would be case where i am make something besides docs

teal bridge
#

Yeah, docfx sure would have made my life a lot easier with the generated xml docs, but it's not really great at anything else.

lucid iron
#

well it renders the markdown things fine

heady crest
teal bridge
#

Yes, it handles "basic markdown" like gfm, but not any of the dozen or so markdown extensions and plugins I'm running through mkdocs.

uncut viper
# sweet sphinx ```[Content Patcher] Error loading patch 'More Animal Varients > Include assets/...

but, the important part of that error is at the top:
Cannot deserialize the current JSON array (e.g. [1,2,3]) into type Pathoschild.Stardew.Common.Utilities.InvariantDictionary1[Newtonsoft.Json.Linq.JToken]' because the type requires a JSON object (e.g. {"name":"value"}) to deserialize correctly.

it cannot deserialize your JSON array (a JSON array is also the [ ]) into the type the game expects, because the type the game expects is a Json object ({ } being an object). so, basically its saying you made a list instead of a dictionary

lucid iron
#

oh really

#

i did see that it had a feature to use custom markdown extensions but i didnt try it

sweet sphinx
#

I'm beyond confused, I copied this file from another of mine, so the beginging and end should be correct

lucid iron
#

my use case was basically "git markdown but sometimes i link to api docs"

#

so it was sufficient

patent lanceBOT
#

@brittle pasture: maybe add DLL reference to that page (4h ago)

brittle pasture
#

the consequences of my actions

sweet sphinx
uncut viper
#

looks tentatively right at a glance, best way to find out is to try running the game

sweet sphinx
#

I have, it keeps spitting the same error

teal bridge
#

My extensions list is currently:

markdown_extensions:
  - abbr
  - admonition
  - attr_list
  - footnotes
  - md_in_html
  - neoteroi.spantable
  - pymdownx.blocks.html
  - pymdownx.details
  - pymdownx.emoji:
      emoji_index: !!python/name:material.extensions.emoji.twemoji
      emoji_generator: !!python/name:material.extensions.emoji.to_svg
  - pymdownx.highlight:
      anchor_linenums: true
      line_spans: __span
      pygments_lang_class: true
  - pymdownx.inlinehilite
  - pymdownx.snippets
  - pymdownx.superfences:
      custom_fences:
        - name: mermaid
          class: mermaid
          format: !!python/name:pymdownx.superfences.fence_code_format
  - pymdownx.tabbed:
      alternate_style: true
      slugify: !!python/object/apply:pymdownx.slugs.slugify
        kwds:
          case: lower
  - toc:
      permalink: ''
      toc_depth: 4

So... yeah, not really that easy to do with docfx, and that's not even counting the plugins for search and navigation.

uncut viper
#

are you saving the file?

teal bridge
#

Sorry, didn't intend for that to take up half the chat.

sweet sphinx
#

... maybe

uncut viper
#

because if thats the saved file, it cannot be the same error

sweet sphinx
#

whelp, now I have a new error

teal bridge
#

But yeah, some of the really important features are tab groups, table spans, footnotes, admonitions and so on. None of which are supported in gfm, and range from not possible at all to just kind of clunky in docfx and related.

uncut viper
#

please use the smapi uploader whenever you post json or error logs

teal bridge
#

(Also, mkdocs has hot reload)

sweet sphinx
#

what is that??

uncut viper
#

!json

ocean sailBOT
#

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

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

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

velvet narwhal
#

!log

ocean sailBOT
#

Important note: Your computer username may appear in the log. If your username is your full name, please be aware of this before uploading it.

Please share your SMAPI log file. To do so:

  1. Open this page: smapi.io/log.
  2. Follow the instructions at the top of the page to upload the log file. (Don't copy & paste from the console window!)
  3. After uploading, it will show a green box with a URL to share. Post that URL here.

Please do it even if you don't see any errors. This has useful info like what mods and versions you have, what the mods are doing, etc. If the issue didn’t occur in your last session, please load the game to the point where the issue occurs, then upload the log.

velvet narwhal
#

oh-

uncut viper
#

(i was gonna do log next so it works)

velvet narwhal
#

i'm getting distracted by the event games ping cause i'd like to join but i also need to draw this flying dutchman for chu

lucid iron
#

well u dont have to AnnelieStare

uncut viper
#

no they have to

velvet narwhal
#

noh i want you to do my crimis tree lights for after this event

teal bridge
#

Flying dutchman? Is this a trinket thing?

velvet narwhal
#

am stupid brain hurt

lucid iron
#

didnt u do that already

velvet narwhal
#

did i? i don't think i got it to work

uncut viper
#

OH YEAH speaking of, chu. can you link me to your trinkettinker repo again i got a trinket idea

pine elbow
#

Hey Guys! Im not making a mod but I am having troubles with some and was hoping to get some opinions!

teal bridge
lucid iron
uncut viper
#

you visit the lerp page a lot i take it ,huh

sweet sphinx
ocean sailBOT
#

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

velvet narwhal
#

yeah i use it as a ref

lucid iron
#

u should probably look at the mod i am actually make

#

its got more fleshed out exampels

sweet sphinx
#

(Yes, I know Steam isn't loaded, that's on purpose)

lucid iron
#

i divide these up by trinkets

velvet narwhal
#

oh the servants one ok

lucid iron
#

anyways if u hit any blockers to what u want to do now is good time to ask so i can shove it in

uncut viper
# sweet sphinx https://smapi.io/log/5b0d26c0c3bc48b4abd12f5bece0dcfe

in this case the error means that you've written a string (something inside quotes) where it should actually be a model or some other object. and in this case its not very your fault bc i gave it the "tentatively looks okay", you need to.... actually, gimme a sec, it'll be easier if i just write the json instead real quick instead of trying to use words lol

velvet narwhal
uncut viper
#
{
  "Changes": [
    {
      "Action": "EditData",
      "Target": "Data/Pets",
      "TargetField": [ "Cat", "Breeds" ],
      "Entries": {
        "{{ModId}}_MomoCat": {
          "Id": "{{ModId}}_MomoCat",
          "Texture": "Mods/{{ModId}}/MomoCat",
          etc etc ...
          "VoicePitch": 1.0,
        }
      }
    }
  ]
}
#

the important change is on the 8th line of the example i just sent

#

contnt patcher requires you to add something to a list the same way you would add, say, an object to Data/Objects, even though Breeds is a list and not a dictionary

#

so you need to give it a key and another { which then has your breed data inside it

lucid iron
#

hm how do i detect that the game is paused

#

i tried Game1.HosePaused but that doesnt seem to do anything

uncut viper
#

should just be HostPaused

brittle pasture
#

yeah HostPaused doesn't seem to work in my case, the arena of death continues spawning even in the pause menu

uncut viper
#

thats what controls Game1.UpdateOther anyway which controls things like delayed actions

#

hm

brittle pasture
#

neither did Game1.paused

#

ended up using Game1.shouldTimePass(), but that's probably not what you want in your case

sweet sphinx
ocean sailBOT
#

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

lucid iron
#

i want to stop enqueue/dequening frames whenever draw should be paused

pine elbow
lucid iron
#

ask bouncer?

#

we can't help you with that

pine elbow
#

Who?

rancid temple
#

Booncer

lucid iron
#

the bot account yea

rancid temple
#

It's a mod bot that connects you to staff

uncut viper
pine elbow
#

Ok

sweet sphinx
#

ah

brittle pasture
rancid temple
#

Did you maybe spell variants wrong somewhere?

uncut viper
#

(also chu what about just taking the stuff from shouldTimePass thats relevant to you, like Game1.paused or Game1.isTimePaused)

lucid iron
#

yea that might work

pine elbow
#

Do I just text the bot?

brittle pasture
#

I wonder if HostPaused is only intended for when the host alt tabs away and the game actually freezes

pine elbow
#

πŸ˜΅β€πŸ’«

rancid temple
#

Yeah just DM the bot

lucid iron
#

see that's the precise scenario i was trying

teal bridge
brittle pasture
#

yeah there's at least a couple questions about that already, it's nice to have a page to point to instead of fetching the code snippet every time

sweet sphinx
#

it works!

next plaza
#

Adding a manual positioning feature to the guidebook system so you can do fancy stuff like this. (Also added item tooltips, text tooltips, and image tooltips)

lucid iron
#

fancy DokkanStare

#

can u change the bg (without patching menutiles and changing every menu i mean)

next plaza
#

You can for the page, not for the tooltips

#

The guidebook entry has a PageTexture field that you can pass to use instead using menutiles

#

Though it has to be full size, not nine patched like menu tiles

velvet narwhal
#

this hat is a lot better SDVpuffersquint

#

i'm ready to use this new spacecore feature to get yelled at that i have too many npcs

sweet sphinx
#

XD

old edge
#

Any C# personnel like to help me with my updatelighting logic? ```cs
private void UpdateLighting()
{
if (Game1.currentLocation != null && Game1.currentLocation.Name.Equals("Farm") && Game1.GetFarmTypeID() == "dreamy.TropicalRainForestFarm/RainForestFarm")
{
int fadeStartTime = Utility.ConvertTimeToMinutes(16 * 60 + 30); // 4:30 PM
int fadeEndTime = Utility.ConvertTimeToMinutes(20 * 60); // 8 PM (fully dark)
int fullNightTime = Utility.ConvertTimeToMinutes(22 * 60); // 10 PM (start of full night)

    float current_time = (float)Utility.ConvertTimeToMinutes(Game1.timeOfDay) + (float)Game1.gameTimeInterval / (float)Game1.realMilliSecondsPerGameMinute;

    // Check if current time is before the start of fading
    if (current_time < fadeStartTime)
    {
        Game1.ambientLight = Color.White; // Full daytime
    }
    // Check if current time is during the fading period
    else if (current_time >= fadeStartTime && current_time < fadeEndTime)
    {
        float lerp = (current_time - fadeStartTime) / (fadeEndTime - fadeStartTime);
        Color targetColor = new Color(10, 10, 30); // Dark color for night
        Game1.ambientLight = Color.Lerp(Color.White, targetColor, lerp); // Lerp from white to dark color
    }
    // Check if current time is after the fade end but before full night
    else if (current_time >= fadeEndTime && current_time < fullNightTime)
    {
        Game1.ambientLight = new Color(10, 10, 30); // Keep the dark color
    }
    // Gradually shift to a midnight blue after full night starts
    else
    {
        float midnightLerp = (current_time - fullNightTime) / (Utility.ConvertTimeToMinutes(24 * 60) - fullNightTime);
        Game1.ambientLight = Color.Lerp(new Color(10, 10, 30), new Color(0, 0, 255), midnightLerp); // Smooth transition to midnight blue
    }
}

}

spice parcel
#

so im trying to make the farmer stop to face the npc at a certain point but the farmer won't stop moving

here is my event. Trying to make the farmer stop walking then do the emote btw

700002/e 700001/f SanjiNPC 1000/f Alex 1000/t 700 1000/w sunny": "50s/63 65/farmer 49 65 1 SanjiNPC 63 64 1 Alex 64 64 3/skippable/emote Alex 12/speak Alex "Why are you always making @ more impressed with you than me?$5"/emote SanjiNPC 28/speak SanjiNPC "I'm just being a gentleman to her, Alex...$2"/move farmer 63 65 0 true/pause/faceDirection farmer 2/emote farmer 8/faceDirection SanjiNPC 2/speak SanjiNPC "Ah. Hello, @. Are you okay?$0"/emote farmer 28/emote farmer 60/speak farmer "$q 0 null#Are you two fighting?#$r 0 2 Oh no, we aren't fighting, @!#STOP ARGUING#$r 0 -2 Sorry..."/faceDirection Alex 2/speak Alex "It's okay, @.$0#$b#I was just asking Sanji for advice on how to, uh...$2#$b#gulp$7#$b#Ask out girls.#$b#Yeah, that’s it!$1"/emote SanjiNPC 32/speak SanjiNPC "There’s nothing to worry about.#$b#I apologize if it seemed like we were.#$b#Alex was just asking for relationship advice.#$b#Though I must admit, I'm not the greatest at giving this kind of advice, as you can see...$2"/emote farmer 60/speak SanjiNPC "Once again, @, it's nothing to worry about.$1"/emote farmer 32/message "You trust Sanji's words, but you feel like Alex is jealous that you and Sanji are hanging out for some reason..."/globalFade/advanced end

velvet narwhal
#

move farmer 63 65 0 true you can only move either x or y in one command

#

if you need to move diagonally, you'd have to use advancedmove

spice parcel
#

i did that but the farmer doesn't move to the spot

velvet narwhal
#

you'd have to split then

#

move farmer 63 0 0/move farmer 0 65 0 true

#

or whichever direction that's facing, i think that's 1

tiny zealot
#

move takes distance values, not the resulting coordinate. 63 is a long way to walk (it will take 31.5 seconds at default speed)

tiny zealot
velvet narwhal
#

that's true, i meant it more in like "you only want one command"

tiny zealot
#

ah, ok

spice parcel
#

also the event keeps repeating on it's own during it

velvet narwhal
#

well, speak farmer is also an invalid command, cause the farmer isn't actually an npc

#

if you wanted the farmer to talk, it's a message

spice parcel
#

ok. it's probably because I was trying to put up the choices the wrong way.

velvet narwhal
#

there's a lot going on

#

but you need to \"Escape Text\" your dialogue

spice parcel
#

where would I put that?

velvet narwhal
#

anytime you're doing the speak <NPC> command

#

as well as the message commands

tiny zealot
#

yeah, anytime you need to put a " inside a string (between " characters), it has to be \" instead, to escape it

spice parcel
#

cause the other event I tested did just fine

uncut viper
#

(unless you use single quote strings SDVpuffersmile)

tiny zealot
#

blasphemy

velvet narwhal
#

that's true, but these all look like double quotes

sweet sphinx
#

are there rules on making a mod with copyrighted media? like, say, if I wanna add Blue from Blue's Clues as a pet dog.

velvet narwhal
#

oh maybe escaped is only required for i18n keys

uncut viper
#

i mean if they catch you and want you to not do that you are legally in the wrong

velvet narwhal
#

speak <character> "<text>"

uncut viper
#

whether you think you will get caught or reported for it given the number of mods on nexusmods that use copyrighted media is up to you

sweet sphinx
#

even if it's not a paid mod(which I doubt one can made mods paid to begin with)?

uncut viper
#

correct

tiny zealot
#

paid or not is irrelevant

velvet narwhal
#

can't have paid mod on nexus anyway

uncut viper
#

that is also true

sweet sphinx
#

ah

velvet narwhal
#

if people wanna pay for it on kofi that's their right, but it will then be the IP's right to sue you SMCKekLmaoDog

uncut viper
#

(but also if you make it paid on kofi you still cannot put it on nexus)

sweet sphinx
#

I don't plan on making my mods paid

spice parcel
#

same

lucid iron
#

ppl can tip u on coffee but u cant paywall stuff

tiny zealot
uncut viper
#

modding in general using game assets for a game that doesnt officially support it is already a technically gray area

velvet narwhal
#

in the eyes of IP, usually their art assets are under copyright unless journalistic fair use

lucid iron
#

.choose snek, dotnet new, donate box

patent lanceBOT
#

Choose result: snek

lucid iron
#

weh

uncut viper
#

for the most part you will likely find that most modding communities will more so care about you stealing from each other than from big companies

lucid iron
#

why is maru so good at picking the one i want to do the least every time

velvet narwhal
#

then you choose from the other two

drowsy pewter
#

avoid using official assets from other media and you'll be okay

#

There's a bajillion pokemon pet mods and we know how nintendo feels about copyright violations

#

no need to get worried over something that wont happen

#

I think a couple mods in the past may have been removed if they used official character art from certain franchises, but i forget which franchises it was

#

If you draw it yourself, thats another thing entirely

sweet sphinx
#

I only mention Blue specifically bc I'm trying to make my old dog Bear, and in doing the retexturing, I used blue colours and it made me think of Blue's Clues

velvet narwhal
#

Legally Distinct Blue Dog

uncut viper
#

a dog that is blue will absolutely not get you noticed or cared about by Blues Clues Inc or w/e

#

make it red and you might have some issues /j

#

(just keepit small if you do)

sweet sphinx
#

XD

rancid temple
#

That's not Blue, that's Azure

sweet sphinx
#

yah

rancid temple
#

Azure's... Mysteries

sweet sphinx
#

lol

tiny zealot
#

A Blue Dog =/= Blue, The Dog From The Teevee Show

velvet narwhal
#

i think the main ones that will get you C&D'd is music but y'know

uncut viper
#

what did you do to this image

sweet sphinx
#

Legally Distinct Blue Dog & Legally Distinct Red Dog, will get added to an alternate "Rainbow Animal Varients" mod

velvet narwhal
#

i did nothing

#

wiki.gg put it through the crunchy cat

tiny zealot
#

did somebody disable anti-aliasing entirely, lol

uncut viper
#

why is there a memes page on the modding wiki

velvet narwhal
#

i took a break because chu linked it

#

and scrolled and enjoyed all of it

tiny zealot
#

gotta change the ui info suite space on the bingo card now

rancid temple
#

The modding wiki is the uncontrolled wild west

#

The only reason it's not all meme pages is because it's not that well known lol

lucid iron
#

wheres the iridium snek

#

better not be cursors

velvet narwhal
#

there's an iridum snek?

uncut viper
#

are you just thinking of the milk chu

lucid iron
#

yea

uncut viper
#

well there is a purple snake in Maps/Mines/mine.png

#

likely not in the form you want though

sweet sphinx
#

smilk

uncut viper
#

actually its mine_dangerous maybe

#

one of the mines

#

mine_lava

velvet narwhal
#

i assume you don't mean the snilk

lucid iron
#

i found it LooseSprites/temporary_sprites_1.png

#

not cursors :)

uncut viper
#

where is it

velvet narwhal
uncut viper
#

these??

lucid iron
#

yea those

velvet narwhal
#

that is a sock puppet

uncut viper
#

i like the snake i found better

lucid iron
#

its true the piller snek is more iridium

uncut viper
#

majestic

lucid iron
#

i think these r furniture too

#

but the sock puppet snek is what shows up in mr qi event

velvet narwhal
#

are you using it for an icon or are you using it for the actual sprite

uncut viper
#

i dont know anything about things

lucid iron
#

i just wanted to see them

uncut viper
#

thats cute

lucid iron
#

but hm their colors r not useful for this

spice parcel
#

im back and the farmer didn't stop moving

rain basalt
spice parcel
#

this is what i have

velvet narwhal
#

just so you're aware, that means that you're moving the farmer 63 tiles

spice parcel
#

oh ok

#

let me fix it

next plaza
#

!stone

ocean sailBOT
#

πŸͺ¨ The item ID for Stone is 390.

lucid iron
#

i hope no one is mad about my design decisions here

rain basalt
#

wait someone realy made a bot to tell you ids lol

#

!wood

tiny zealot
#

no, it's just for stone in particular

rain basalt
#

i feel cheated

uncut viper
lucid iron
#

yea

uncut viper
#

i support the design decisions

lucid iron
#

the reason why it's like this is cus

#

-> is theta 0

uncut viper
#

can you let me put an int to decide how many body segments i want

#

like snake game

#

grows when it eats enemies

lucid iron
#

wow LilyDerp

uncut viper
#

im so smart i know

lucid iron
#

but u would have to do an ontime update for that button

uncut viper
#

ive done worse crimes

lucid iron
#

incidentally i never implemented hungry frog ability either

#

thats the only vanilla trinket this framework cannot do

teal bridge
lucid iron
#

i had a stray thought about making snake in stardewui the other day LilyDerp

#

and minesweeper

#

it didnt seem too bad

uncut viper
#

minesweeper seems like itd be super easy

lucid iron
#

both r grid based games yea

uncut viper
#

demoncrawl in stardew..

rain basalt
#

doom

rancid temple
#

Stardew pinball

teal bridge
#

Minesweeper would be super easy, for sure. Not sure about snake. It'd be a little strange, definitely.

#

I guess if the snake animation were stepwise and not smooth, you could do it using a grid. Otherwise you're fiddling with margins and z-index a lot.

lucid iron
#

i mean u would just have X * Y cells and draw either nothing or some part of snek

sweet sphinx
#

Discord's 404 page has a hidden snake game

lucid iron
#

on every grid

brittle pasture
#

might be easier to do it on the map itself with tile actions SDVpufferwoke

lucid iron
#

how do u control it then

#

does the player step on TouchActions KasumiDerp

brittle pasture
#

make any tile with a segment impassable

teal bridge
#

I guess the snake is like the player's virtual tail, or something. Trails the player.

brittle pasture
#

yeah that's my idea

lucid iron
#

but the player can go diagonal

teal bridge
#

Snake V2

#

Analog stick is Snake V3

brittle pasture
#

yeah I remember a "smooth" snake game on my nokia lol

#

full degree of freedom, more opportunities to mess up

teal bridge
#

If you wanted it to actually feel like classic Snake, as opposed to some Snake-like analogue, then the grid/UI-based is probably a better bet.

tiny zealot
#

hey if i add a tilesheet to a map during gameplay (in the same fashion that GameLocation.ApplyMapOverride does), do i need to worry about removing it? (i.e. will the added tilesheet get serialized in the save file)

rain basalt
#

no it only loads on the map its related to

lucid iron
#

i never seen spring_outdoors or whatever in saves

rancid temple
#

Aren't map overrides re-applied every time you load a save?

rain basalt
#

when you load a save your calling up the maps

tiny zealot
#

probably (about reapplying overrides). i'm worried about breaking people's saves if they uninstall this mod

rain basalt
#

the map data searches for the tile sheets

rancid temple
#

Relatively easy thing to check, since it'll scream at you when you try to save (if it needs to be added to the serializer)

rain basalt
#

you remove the map override the original call is there

lucid iron
#

i mean ppl uninstalled sve with some reset terrain features

#

it's probably fine

brittle pasture
#

The only things that get saved are terrain features

rain basalt
#

yah object locations carry over

tiny zealot
rain basalt
#

but there is a terrain reset tool

rain basalt
#

i play with map data all the time lol

uncut viper
#

sometimes a list gets saved

rancid temple
#

I tend to just start projects with no idea if the thing I even want to do is feasible or smart

rain basalt
#

i usualy ask questions here then try to find info then attempt insanity

calm nebula
#

Okay

#

It will not break the save serializer

#

It WILL break splitscreen until 1.6.9

uncut viper
#

split screen doesnt exist so its okay

#

you cant convince me it does

calm nebula
tiny zealot
#

also the 1.6.8 window practically doesn't exist at this point

rain basalt
#

whats this 1.6.8 i keep hearing of SDVkrobusgiggle

sweet sphinx
rain basalt
#

you watch dr mike to !!

sweet sphinx
#

who?

brittle pasture
sweet sphinx
#

this is a family pet from my childhood

rain basalt
#

lol nvm you tuber his dogs name is bear

fiery cobalt
sweet sphinx
#

thank you

heady crest
#

this makes me wanna cry

brittle pasture
#

@ivory plume I think this is a 1.6.8 bug as well, but machines that have:

  • DayUpdate trigger and DaysUntilReady set to -1 (aka a machine that immediately produces every morning, like the coffee maker)
  • ShowNextIndexWhenReady to true
    will not have ShowNextIndexWhenReady apply until the clock rolls to 6:10
#

to reproduce, set ShowNextIndexWhenReady to true on the Coffee Maker. It should transform into a sewing machine when it has coffee, but it only does so on 6:10 AM

#

this bug doesn't apply to machines that have DaysUntilReady set to any amount higher than 0
(EDIT: Though given that this can be worked around by a combination of MachinePutDown and OutputCollected you don't have to fix this this very niche interaction!)

tiny zealot
#

i have done some more sleuthing and got hot reload working via command line on linux, but it eats input in the smapi terminal so i can't run debug commands. i can probably figure out a solution for that

lucid iron
#

oh how does it work bolbwawawa

brittle pasture
#

Isnt there a mod for console commands in chat window, I think that problem can be worked around

#

anyway drop deets pls

tiny zealot
#

i'm looking into "open a new terminal for actual SMAPI to use and let dotnet consume this one"

lucid iron
#

does large milk come in a bottle or in a jar

#

im not sure how to interpret the sprite

tiny zealot
#

large milk says it's a gallon, so it's a jug

#

looking for a decent picture ref

lucid iron
#

gotta make a mod that resprites milk to bags

brittle pasture
#

Heresy

tiny zealot
#

lmao we love wikipedia don't we folks https://en.wikipedia.org/wiki/Plastic_milk_container

Plastic milk containers are plastic containers for storing, shipping and dispensing milk. Plastic bottles, sometimes called jugs, have largely replaced glass bottles for home consumption. Glass milk bottles have traditionally been reusable while light-weight plastic bottles are designed for single trips and plastic recycling.

velvet narwhal
#

chu confirmed canadian

lucid iron
#

selph banned from canada forever

tiny zealot
#

i have fond childhood memories of milk bags (not canadian)

lucid iron
#

the goat milk is undeniably that

#

but the cow milk is like some clay jar thing

teal bridge
#

lol, bagged milk. Come on.

#

Those things are only good for getting lost in fridge drawers.

sweet sphinx
#

Or using as water balloons

brittle pasture
#

I admit I drank bagged milk as a child, but only in portions fit for immediate consumption in one serving

#

this? this is horrific

teal bridge
#

Jail.

velvet narwhal
#

i can't even understand how that's supposed to comfortably fit in the fridge (yes i understand the implications of putting the bag into a pitcher but that's a waste of a pitcher)

teal bridge
#

You can't even use a normal pitcher, you need a special milk bag pitcher.

#

And they are always cheap plastic that warps under the weight of the bag.

velvet narwhal
#

i'm waiting on lumina's realism cheese where i have to use wool to create cheese cloth and age milk

teal bridge
#

(And god help you if one ever gets punctured)

lucid iron
#

u need a holder thing

teal bridge
#

(or falls out of the pitcher while you're trying to pour it... or...)

lucid iron
teal bridge
#

Yeah, that's what I was talking about. Hate those things with a passion.

tiny zealot
# tiny zealot i have done some more sleuthing and got hot reload working via command line on l...

the key to it is that hot reload is only enabled if you run (specifically) dotnet watch run (cf. https://www.answeroverflow.com/m/1228758775494606978).
to get that to run the game, you have to specify a <RunCommand> and a <RunWorkingDirectory> in a PropertyGroup in your csproj, but so far for me that's a bit wonky because i haven't been able to use ModBuildConfig's $(GamePath) or certain other values for the directory.
and, as mentioned, it eats input on that terminal, so i'm still working on the setup

teal bridge
#

Microsoft apparently does not believe anyone could give them a high rating.

#

(I didn't want to paste the entire 2560px wide screenshot, but it's not a weird alignment thing; there really are no options after 2, except the "X" button to dismiss it)

lucid iron
uncut viper
#

you can probably get away with just not letting it rotate and just have it move up and down and flip when it turns around

lucid iron
#

ill think of something better tmr

uncut viper
#

snakes are like omnitreadmills they can do whatever

lucid iron
#

this is currently done with the draw queue

velvet narwhal
#

i was gonna say do you want it to really be a snek or do you wanna make it be the same as the royal serpent

lucid iron
#

i basically queue up draws for the snek n * 200ms in the future, using the current position of the head

uncut viper
#

(spooky skull in the hotbar SDVpufferthink)

lucid iron
#

thats why it looks ok when i walk in a straight line

velvet narwhal
#

(i made dat) SMCKekLmaoDog

lucid iron
#

oh thats the skull that bonks enemies

uncut viper
#

oh of course

velvet narwhal
#

the .dll in mothman is equal payment, i made artwork SMCKekLmaoDog

#

oh, are you standardizing the actual spawned companion or is it "f it, ball"

lucid iron
#

i define all this in the cp mod

teal bridge
velvet narwhal
#
            {
              "Texture": "Mods/{{ModId}}/dustspirit_1",
              "Width": 16,
              "Height": 16
            },
          ],``` ?
lucid iron
#

the current way it works actually supports animations on each segment too

lucid iron
velvet narwhal
#

oh

#

i will test when i'm doing my flyswatter

lucid iron
#

the skull that bonks enemies

lucid iron
teal bridge
#

Sure, it's just geometry. You know the base and height of a triangle (x and y) so you can calculate the slope.

next plaza
#

You could look at how the royal serpents do it

teal bridge
#

Maybe there's some formula to get it directly from rotation, I'm not totally focused on the problem tbh. But it's definitely computable.

lucid iron
#

they are doing it in more elaborate way than this

#

yea its math for tmr morning chu

teal bridge
#

Well, scale is probably not too difficult but skew is something I always had a hard time grokking, and I think this might involve skew.

#

Not even sure how you do skew in XNA/MonoGame. There's no matrix transform you can feed to spritebatch.

#

...well, maybe you don't need it. Try with just non-uniform scale and see what happens.

spice parcel
#

anyone know how to load an npc into a festival?

#

cause I tried for me but he wont show up

pine elbow
spice parcel
pine elbow
#

!json

ocean sailBOT
#

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

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

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

spice parcel
#

???

pine elbow
#

Use the website so we don't have to download it SDVpufferthumbsup

spice parcel
#

oh ok

lucid iron
tiny zealot
calm nebula
#

(Fwiw, vanilla does ball and stick)

spice parcel
#

wym?

hearty tide
#

Oh just wanted to know but is there a way to stop other outputs that come from other mods from overriding your own outputs. (I am trying to make Uncle Iroh’s tea and a few other mods compatible for Machine Progression for my own uses). And the Cassia Flower will just automatically be converted in Wildflour dried flowers. Now I could just not use wildflour if I didn’t want to but I think it is more funny seeing how to just stop the cassia flower from being converted into dried flowers (I can get the intended input by using 1-3 flowers but I can’t get it at a higher priority yet)

brittle pasture
#

you can modify Wildflour's rules' RequiredTags field to exclude your item's context tags

hearty tide
#

Oh nice idea.

brittle pasture
#

though you mentioned also having your own rules?

#

then why not just move your triggers to the top

hearty tide
#

So I just need to find a tag in the mods I am working either

hearty tide
brittle pasture
#

yes, machine rules evaluate from top to bottom. Use CP's MoveEntries to move your specific rules to the top, above Wildflour's generic "any flowers to dried flowers" rule

hearty tide
#

I will give that a shot then, but should I use the move to top position or the β€˜before id:’ option

#

Thks I will try it out later to see if it works (if it does that will also help with the PC specific wines since they also have the same issue when added

brittle pasture
#

move to top is fine if your rule is a specific modded item ID instead of a class of items

pine elbow
#

When creating a fashion sense pack, how do you calculate the head position?

tender bloom
#

For shirts?

pine elbow
tender bloom
#

If they’re vanilla sized typically you can leave it at 0,0 or something else normal

#

Ah

#

Fs_reload

#

And tweaking until it looks right

pine elbow
#

ohh okay

willow pagoda
#

Trying to edit a PlantableLocationRules-entry for a crop; I have
"Condition": "FARM_TYPE Beach, LOCATION_IS_OUTDOORS Here, LOCATION_CONTEXT Here Farm", "Result": "Allow",
Which I thought was supposed to make the crop be able to be planted regardless of season as long as you are on the Beach-farm, but I am just getting the "out of season"-message anyway. ccat
Anyone know what I am doing wrong???

brittle pasture
#

you want something else for "location is farm" I think

#

LOCATION_NAME Here Farm should do it

willow pagoda
velvet narwhal
#

gsqs are picky

brittle pasture
#

(we're so close to hollowing out that page!)

velvet narwhal
#

i've been contemplating adding the greenrain/greenrainfinished into the dialogue wiki SDVpuffersquint

#

and whatever keys i've dug out of vanilla npcs but i am also Lazy ℒ️

old edge
#

Hello so far I've managed to turn the ambient lighting in my map into a lemon green. But it's not intended.

rancid temple
tardy adder
#

I have winter going insane... even on a fresh save and straight sleeping, there is at least ONE DAY with a weird weather pattern going on...

I declare this a feature, I cannot even

#

Invisible rain ftw

brave fable
#

so if you're getting the opposite colour to what you want, you can easily fix it by inverting your rgb values

next plaza
vague acorn
#

Is there a way for me to retrieve sprites from the game's data?

latent mauve
#

!unpack you mean the game assets?

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!

vague acorn
#

interesting, thanks!!

hard fern
#

πŸ˜” things i have yet to do... finish writing basic dialogue and make a schedule

#

gah.. and a spouse room

faint ingot
#

This spouse dialogue bug is driving me up the wall...

#

It's saying I don't have funLeave when it's there, and it's saying it couldn't load spring_24 whether or not I commented that line out

quaint moss
#

Is it just me or did Data/Objects books break within the last few 1.6 patches? I had a mod with a working book (type asdf, category -102, context tag book_item) that when interacted with, would do the book flipping animation + message and trigger a Spacecore OnItemUsed action. But now, in that very same mod, the book behavior no longer takes place, the book just sits in the farmer's hands while the Spacecore action works as usual

faint ingot
#

I just did a [patch export "Characters/Dialogue/MarriageDialogueShannon"] just now and its EMPTY??? I'm at a loss

hard fern
#

err

#

it's in there right?

rancid temple
#

Do a patch summary for your mod

vernal crest
old edge
#

I was stuck for awhile with green overtone cause I forgot I changed my .dll

hard fern
#

SDVpuffersweats facial hair config

#

(name is blocked out bc im still undecided)

vernal crest
#

Mystery boy

faint ingot
vernal crest
ocean sailBOT
#

Important note: Your computer username may appear in the log. If your username is your full name, please be aware of this before uploading it.

Please share your SMAPI log file. To do so:

  1. Open this page: smapi.io/log.
  2. Follow the instructions at the top of the page to upload the log file. (Don't copy & paste from the console window!)
  3. After uploading, it will show a green box with a URL to share. Post that URL here.

Please do it even if you don't see any errors. This has useful info like what mods and versions you have, what the mods are doing, etc. If the issue didn’t occur in your last session, please load the game to the point where the issue occurs, then upload the log.

faint ingot
#

OK fwiw my name isn't in there and it wouldn't particularly bother me if it was

hard fern
#

SDVpufferdead I'll just commit to i18n

#

makes part of my job easier

vague acorn
ocean sailBOT
#

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

vernal crest
# faint ingot https://smapi.io/log/283ddb7bb74f4153838d859d16bbf04b

Looks like this is your issue

      [ ]     | [ ]        | [ ]     |           | Fixup Condition Check > fixup.json > Shannon NPC Dialogue > assets/NPCs/Dialogue/Shannon.json > Marriage Dialogue (EditData Characters/Dialogue/MarriageDialogueShannon)  // Entries > 'spring_16' value is invalid: '{{i8n:Shannon_spring_16}}' can't be used as a token because that token could not be found
#

Oh, your i18n is written wrong

#

You have i8n instead of i18n

rancid temple
#

I wanna make a joke but I don't know what the 18 is for

brittle pasture
#

i[nternationalizatio]n

vernal crest
#

Average number of mistakes made by someone learning how to use i18n?

faint ingot
vernal crest
#

No I am just someone who has broken their dialogue A LOT

#

A lot a lot

rancid temple
vernal crest
quaint moss
# vague acorn how do you create a new book actually? i am interested about it for a little tes...

Here's a quick example, fill in the blanks style. Basically create an object with the book category and context tag, set up a trigger action with the Spacecore OnItemUsed trigger, and finally edit Spacecore's ObjectExtensionData asset to tell the game your item be made to use the trigger action ```Object:

"aaa":
{
"Name": "aaa",
"DisplayName": "aaa",
"Description": "aaa",
"Type": "asdf",
"Category": -102,
"ExcludeFromRandomSale": true,
"ExcludeFromFishingCollection": true,
"ExcludeFromShippingCollection": true,
"Price": 1600,
"Edibility": -300,
"IsDrink": false,
"Buffs": null,
"Texture": "aaa",
"SpriteIndex": aaa,
"ContextTags": [
"book_item"
],
},

Spacecore trigger action:

"aaa": {
"Id": "aaa",
"Trigger": "spacechase0.SpaceCore_OnItemUsed",
"Condition": "ITEM_ID Input aaa",
"Actions": [
],

Spacecore ObjectExtensionData

"aaa": {
"UseForTriggerAction": true,
},```

faint ingot
#

Thanks I was really tired the other day glad you were still around when I started banging my head on the problem again

rancid temple
brittle pasture
hard fern
rancid temple
#

E15 lmao what

hard fern
#

the volcano in iceland, of course

vernal crest
#

Is pronouncing "i18n" supposed to sound like internationalisation?

rancid temple
#

a16z lmfao

hard fern
#

i think its the number of letters in between?

vernal crest
#

Ahhh that makes more sense lol

rancid temple
#

Yeah, it's the number of letters between the i and n

#

And apparently all these other goofy examples for some reason

brave fable
#

wow knowing there's more of these makes me hate i18n way more

rancid temple
#

Got it,
i8n: ivermectin

#

For all your farm animals

vernal crest
#

xD

faint ingot
hard fern
#

i hate myself for writing this line SDVpufferchickcry

faint ingot
hard fern
#

lol

silver pelican
#

Hello. If i'm going to use Portraiture or HD Portrait (idk which one to pick), what is the maximum size per portrait/emotion?
working nvm keke

vague acorn
quaint moss
# vague acorn do you use ContentPatcher for this?

Yeah, but you obviously need Spacecore as a dependency first. And don't forget all the stuff I left out such as Editdata, entries, etc. If you search in this channel you should be able to find complete examples

vague acorn
quaint moss
#

In that case the Spacecore documentation (see the mod page for the link) will be a little hard for you to understand but just grab examples from here and you should be good

fossil osprey
hearty tide
#

Now to have some fun patching FC

vague acorn
#

is it valid to place a ContentPatcher patch inside of a DLL mod to add items and such?

hallow prism
#

i don't think that would work, why do you need to do that?

#

to my knowledge, the mods usually adds the content with C#, or have one folder for C#, one for CP

vague acorn
#

yeah that's what i wanted to do

#

have the base mod, and inside of it have a separate patch for CP

hallow prism
#

you need folders to be separate and at same level

#

i suggest looking at a mod like archaeology skill and see how they do it

#

(just the mod on top of my head doing that)

vague acorn
#

ill look into it

blissful panther
blissful panther
#

Even takes care of manifest validation and ensuring the version of the pack matches what you expect!

vague acorn
blissful panther
#

It shouldn't be packing it like that...

#

It should be more like:

ProjectName
  > ProjectName
    > DLL, etc...
  > PackName
    > Pack content...
vague acorn
blissful panther
#

Did you set it up the way the docs described? If you did, I'd suggest...

  1. Deleting the deployed mod folder (the one in the game's mods folder) to give it a clean slate.
  2. Clearing our your project's obj folder.
  3. Run a NuGet restore.
  4. Build it again and check!
vague acorn
#

it's really fun getting back to modding something actually

granite bluff
#

hey, i made a custom Bathhouse-Locker and when i enter the pool, the swimsuit stays but when i enter back to the Locker-Room it disappears 😦 and i have no idea why.
i used "TouchAction: ChangeIntoSwimsuit" in the Locker-Room via Tiled

hallow prism
#

swimsuit thing is complicated

#

i can't help, because it's complicated

sweet sphinx
#

why do some animal sprites have built in shadows, but others don't?

uncut viper
lucid iron
sweet sphinx
#

so can I remove the baked in ones?

lucid iron
#

Yeah should be fine AquaThumbsup

#

I forget if there was any way to turn off the shadow draw

sweet sphinx
#

awesome, there isn't smth codewise that says to or to not draw a shadow for smth?

#

oh, the baked in ones are on the spritesheet, and I was hoping to remove them(at least from the skins, but perhaps even the vanilla ones)

#

i mean like, i dont wnna turn shadow draw off, I wanna turn it on for all animals

hollow cedar
#

does anyone here know how to make a simple mod where you just change the sprites and portraits?

hard fern
#

content patcher is your friend :)

ivory plume
hard fern
#

err idk if there's a command for it or anything

hollow cedar
fossil osprey
#

There's extensive tutorial on the mod's GitHub

hollow cedar
#

oo okay ty

fossil osprey
vernal crest
ocean sailBOT
#

Making mods can be broadly divided into two categories:

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

vernal crest
#

(Ignore the C# stuff)

candid remnant
#

Is the whole content folder available as a zip somewhere? I am on vacation and cant install stardew on my laptop so would love to practice some modding

hallow prism
#

no, if you can still access the original game on your main pc you can try an unpack then copying file

#

!unpack

ocean sailBOT
#

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

candid remnant
#

Unfortunately I dont atm

hard fern
#

Rip

candid remnant
#

Would you unrip me by giving me the folder? SDVpufferheart

lucid iron
#

Regardless of having content folder unpacked, it'd be very hard to mod if you can't test in game

granite bluff
#

one more question, i can't seem to make doors work. I use the semi-transparend door tiles from towninterior on building&frontlayer. and put a door action tile on top. am i missing anything else?

hallow prism
#

yes the map property i believe

granite bluff
#

thank you 😭 i didnt know

timid plover
#

Hi peeps, I'm back on the modding saddle after a long hiatus, if I add false dependencies to a CP mod to make sure mine loads last, the mod will work even if people don't have the others I have the dependecies to, right?

hallow prism
#

it's indeed how false dependency works BUT know there's also ability to decide the priority of a patch

#

which may be better if you know you need to load before or after a lot of mods

#

assuming, of course, they don't also load/edit late

timid plover
#

oh, is that a new feature? that sounds like a cleaner way to do it

hallow prism
#

yes it's new πŸ™‚

timid plover
#

I'll look into it, ty

hallow prism
#

(it has different name for load anf for edit, so i don't remember exactly the details)

velvet narwhal
#

oh the priorities? they're kinda all over in the action docs

hallow prism
#

(also we have a new feature for NPC appearance, and some other new stuff, so you may want to tell which kind of mod you make so we can tell "oh this may be convenient" if you feel like it AND such a thing exists of course πŸ˜„ )

velvet narwhal
#

yeah load has low, medium, high, exclusive, as well as +(int) variants
editdata has early, default, late, as well as the +(int)

timid plover
#

It's just a quick replacer for the egg hunt eggs, making them bigger because they can be hard to spot with modded foliage

#

Way Back Pelican Town also replaces them which is why I need mine to load later

hallow prism
#

ok, just using priority should be fine then πŸ™‚

quaint moss
#

Has anyone noticed Data/Objects books not working within the last few 1.6 patches? I had a mod with a working book (type asdf, category -102, context tag book_item) that would do the book flipping animation + new power message when used and trigger a Spacecore OnItemUsed action. But now, in that very same mod and with the same conditions, the book animation + message no longer takes place and the book just sits in the farmer's hands while the Spacecore action works as usual

hallow prism
#

what is your version of the game?

quaint moss
#

1.6.8

hallow prism
#

hmm, there is no recent patch for it

#

so i'm unsure what's going on

uncut viper
#

can you post your json for your book items?

quaint moss
#

Again, the important part is that this is an existing excerpt I haven't touched in a while that worked perfectly when first implemented```{
"Action": "EditData",
"Target": "Data/Objects",
"Entries": {
"amalur.homegrownfriendship":
{
"Name": "amalur.homegrownfriendship",
"DisplayName": "Homegrown Friendship",
"Description": "Increases your friendship with town citizens.",
"Type": "asdf",
"Category": -102,
"ExcludeFromRandomSale": true,
"ExcludeFromFishingCollection": true,
"ExcludeFromShippingCollection": true,
"Price": 1600,
"Edibility": -300,
"IsDrink": false,
"Buffs": null,
"Texture": "Mods/amalur.mod/ItemSheet",
"SpriteIndex": 4,
"ContextTags": [
"color_green",
"book_item"
],
},
},
},

{
"Action": "EditData",
"Target": "Data/TriggerActions",
"Entries": {
"homegrownfriendship": {
"Id": "homegrownfriendship",
"Trigger": "spacechase0.SpaceCore_OnItemUsed",
"Condition": "ITEM_ID Input amalur.homegrownfriendship",
"Actions": [
"AddFriendshipPoints mod_Amalur 500",
"AddFriendshipPoints mod_Zed 500",
],
"MarkActionApplied": true
}
}
},

{
"Action": "EditData",
"Target": "spacechase0.SpaceCore/ObjectExtensionData",
"Entries": {
"amalur.homegrownfriendship": {
"UseForTriggerAction": true,
"CategoryTextOverride": "Book",
},
},
},```

uncut viper
#

it's still important to be able to see the json for full context
when was the last time you tested it? bc as lumina said there's been no recent patches. have you installed any other mods that have anything to do with books that might be conflicting?

timid plover
#

After correcting a typo, big egg mod is good to go πŸ‘

quaint moss
#

It was before 1.6.8 for sure. I'm using a few more mods in my current testing environment that I did not use in the past (Ridgeside, Log Menu and Fast Forward) but that's it. I guess the only way out is to make a minimal repro pack and maybe ping Pathos about it, so thanks anyway

uncut viper
#

i mean books are definitely not broken in 1.6.8

hard fern
#

if nothing has changed it might be mod conflict πŸ€”

uncut viper
#

it's either a mod conflict or perhaps a space core update since then that's changed how the onitemuse stuff works, so I'd also try removing that and seeing if the book works on it's own

velvet narwhal
#

would that outlying 'markactionapplied' even work

#

i mean it doesn't matter because trigger actions only trigger once

uncut viper
#

yes, that's where it goes

velvet narwhal
#

ah ok

uncut viper
#

they trigger multiple times if you don't mark action applied

#

setting it to true is the same as the default but it'll still technically be checked, it's not at the wrong level or anything

#

they said it's just the book that doesn't work anyway not the trigger action

velvet narwhal
#

not used to seeing the markactionapplied outside of the actions list SMCKekLmaoDog

uncut viper
#

it's a field in trigger action data

near sierra
#

Are there any frameworks that can allow you to trigger events at specific locations on a map, rather than entering a specific location? If possible, I would like to make a certain event trigger when going to the graveyard, rather than right when a player enters town.

velvet narwhal
#

uhhhhhhhhh did that tiledata get fixed i don't remember

#

probably MEEP though

#

maybe not meep, some other map thing i'm thinking of

uncut viper
#

spacecore adds a touch action i think that can set off a trigger action and also has a trigger action that can start an event i think

velvet narwhal
hallow prism
#

you can specify an event to trigger when someone is at specific coordinates and then use a tileaction to trigger the event

#

possibly spacecore options are simpler and shorter

#

but it's definitively doable with just CP too

velvet narwhal
#

(i don't know if the action message $action works... in 1.6.8? or even in 1.6.9, could try it though)

hallow prism
#

(in VMV i do that so players can trigger an event when interacting or walking on specific tiles)

blissful panther
#

(Definitely not MEEP here, for the record! SDVkrobusgiggle)

velvet narwhal
#

got meep on the brain cause i got letter layouts

near sierra
#

Thank you for your suggestions.

timid plover
quaint moss
uncut viper
#

Β―_(ツ)_/Β―

#

i dont know what the intentional behaviour of that is in spacecore

#

or if its supposed to override the book or not

next plaza
#

Definitely not intentional

#

Not sure what to do about it though - it definitely needs to stop the normal item use stuff. Maybe I code an exception for books

uncut viper
#

its been on my todo list to just add a trigger for booksread tbh

#

seems the easiest way

#

they seem a pretty specific thing

next plaza
#

I mean I literally just need to check the item category and call readBook(), I think I'll just add the exception

uncut viper
#

(which is to say, feel free to steal that)

#

oh i thought you meant detecting when readBook happens SDVpuffersquee

next plaza
#

Fixed for next release

strong ice
#

Hi! Im trying to edit the recycling machine outputs, I would want to get Garden pots from recycling clay. I don't know ho to put the rule because its a Big craftable, BO(62). Could anyone help me? Thanks! πŸ™‚

strong ice
#

I tried too. I can't get it 😒

brittle pasture
#

post your json?

#

!json

ocean sailBOT
#

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

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

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

strong ice
sweet sphinx
#

how do I do a new line in a dialog?

#

like
this

velvet narwhal
#

#$b#

#

oh wait new line, i think that's just #

worn coral
#

Thanks - yeah the basic CP patched worked just fine but since it was a straight replace it made all the machines (exactly like you thought @rancid temple) and chests just sound like my gurgle-y monster growls and burps sfx cat_panic (which is kind of funny but would drive even me mad) so I scrapped the sound bit from my mod and parked the idea for now - might still want to give it a try in the future though

granite bluff
#

what is going wrong when getting stuck in a blackscreen while loading a map? "NullReferenceException: Object reference not set to an instance of an object" πŸ€”

rancid temple
#

!log

ocean sailBOT
#

Important note: Your computer username may appear in the log. If your username is your full name, please be aware of this before uploading it.

Please share your SMAPI log file. To do so:

  1. Open this page: smapi.io/log.
  2. Follow the instructions at the top of the page to upload the log file. (Don't copy & paste from the console window!)
  3. After uploading, it will show a green box with a URL to share. Post that URL here.

Please do it even if you don't see any errors. This has useful info like what mods and versions you have, what the mods are doing, etc. If the issue didn’t occur in your last session, please load the game to the point where the issue occurs, then upload the log.

velvet narwhal
granite bluff
ocean sailBOT
#

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

sweet sphinx
rancid temple
#

New line might be \n depends on where though

velvet narwhal
rancid temple
#

Some places it doesn't work, like I think i18n it doesn't

velvet narwhal
#

are you replacing the community center? cause that's a slippery slope

granite bluff
#

ya ;_;

rancid temple
#

You can't really do much with the CC until after it's complete

granite bluff
#

what am i missing, the Load-Command is not enough here?

rancid temple
#

CC is hardcoded to reload its patches almost constantly

granite bluff
#

oh .. can i replace it somehow after its finished?

rancid temple
#

Once it's complete, it should be okay to patch like normal

#

I believe anyways, I haven't really tested that thoroughly

granite bluff
#

ah my patch will show after completion ?

rancid temple
#

!json possibly, though your error should still not be happening I guess. Share what you're doing

ocean sailBOT
#

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

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

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

rancid temple
#

The CC normally just silently overwrites changes you make, without spewing errors

granite bluff
#

ok so it shouldnt show until completion but also not cause crashes like this?

rancid temple
#

Yeah again, I am not 100% sure it will work even after completion, but I know before completion it is highly aggressive with its map patches

granite bluff
#

ou too bad :0

latent mauve
#

As someone who has a CC mod and had also previously tried patching individual rooms as they unlocked before the whole thing was completed.... Yeah, CC patches through CP will just not work and will be overwritten until after you've completed the CC and seen the cutscene. (And sometimes not even until one sleep after that!)

granite bluff
#

ouu too bad. alright. i guess i'll put up an extra mod only for the CC map, that unlocks after completion. πŸ₯² thanks for the advice!

proud coral
#

heyo! I just switched from VS to Rider and am having some issues getting it to work. I'm getting a buuuunch of errors, but the project does still build correctly (just using the example mod from the wiki to test)

#

Stardew is installed in a non-default location, maybe that has something to do with it?

#

never used Rider before, so also not really sure what the problem might be

#

i have checked and confirmed that the NuGet package is installed

rancid temple
#

I have to figure out how to make Rider shut up about the smallest things before I use it

velvet narwhal
#

i'm also using a nondefault location and i'm trying to remember how to get vs22 to shut up i think it had to do with the $(GamePath) but idk how rider handles that

sweet sphinx
#

how often do pigs dig up truffles?

proud coral
#

It's also supposed to start SMAPI automatically after building, right?

#

because it cant find that either

velvet narwhal
#

no, that's hotreload

sweet sphinx
#

ah, so it is friendship dependant for extra truffles

velvet narwhal
#

unless you set up your vs to do that SMCKekLmaoDog but mine doesn't build -> start smapi unless i hit debug mode

proud coral
#

ah, because when I press "Build" (the green arrow at the top), it comes up with this

now obviously it wouldnt be located there, because Im using a non-default location. but apparently it doesnt pick it up for that purpose

proud coral
#

again, never used it, so clueless here

rancid temple
#

The green arrow is Run not Build

#

You can right click a project in the Solution pane and Build Selected Projects

proud coral
#

if i want to test after i build, i could just hit "Run" right?

rancid temple
#

Sounds like your targets for ModBuildConfig aren't correct, though I know very little about that

proud coral
#

well thats the thing, it builds correctly

#

just wont run after that

rancid temple
#

You can also just launch the game after building

proud coral
#

true! but would be easier if it was in one click

#

ill do that though

#

until i find a fix

proud coral
tiny zealot
#

dismayed to be backreading about the inability to pipe standard input into SMAPI #making-mods-general message, since that was my current idea to work around hot reload eating (at least) every other keystroke in the console

sweet sphinx
#

how do I buy a new pet, I got the "(pet) love you" msg

rancid temple
#

I think once a pet loves you, you have to find a book somewhere?

#

Maybe Marnie sells it? I can't really remember, I've only needed to do it once for my save and just look up what I need to cheat to make it happen when I'm testing lmao

sweet sphinx
#

it says marnie sells "licences" once you either max friendship or reach year 2 with no first pet

rancid temple
#

Maybe try sleeping after you max

sweet sphinx
#

I did

#

i can try again

proud coral
sweet sphinx
#

oh, she sent a letter

rancid temple
velvet narwhal
#

i think it's the linux-doesn't-like-hot-reload

rancid temple
#

Oh, it's Linux specific?

velvet narwhal
sweet sphinx
#

gods that took forever! but! my Boar makes truffles! and more than one(with friendship)!

rancid temple
#

This takes me back to wanting to make a mod that iterates over all the debug commands and creates a menu of them all lol

#

Just still not great at using StardewUI so I haven't been very compelled to keep working on UI stuff lmao

velvet narwhal
#

my brain has not comprehended the docs so i've left that For A Smarter Me ℒ️ if that day ever comes

rancid temple
#

Yeah, all the progress I've made so far has been based on seeing how chu did it and then experimenting lol, I just don't know enough about any of the systems it's based on to understand the docs

uncut viper
#

you could always use the vanilla ui stuff SDVpuffersmile

rancid temple
#

It makes even less sense :P

uncut viper
#

i do find it amusing that its not even a consideration

rancid temple
#

Honestly, the biggest reason is probably that I would have to make my own scrollbar lmao

uncut viper
#

could go with pagination instead

rancid temple
#

I guess, I really hate that solution

uncut viper
#

i am curious though, how would you extract the required arguments from the debug commands

next plaza
#

Or the SpaceCore UI stuff πŸ˜›

#

Though focustense's UI stuff is definitely higher quality

rancid temple
#

I am still waiting on the docs :P

next plaza
#

Reading code too hard for you? πŸ˜›

rancid temple
#

I love your work, but you're way smarter than me

next plaza
#

The docs will come.. eventually...

#

Whenever I get the new website for them up

uncut viper
#

helps when its the sole focus (tense) for months

next plaza
#

SpaceCore UI is even getting a new feature in the upcoming update

uncut viper
#

have you considered using Spacecore ui to build your docs website

next plaza
#

A ScrollContainer that calculates its inner size based on the children (instead of being row based like Table)

#

Alas, the UI isn't the hard part, it's the text

rancid temple
uncut viper
#

clearly you need to parse the IL directly

#

just look at the locals itll be fine

rancid temple
#

All the transpilers

uncut viper
#

actually i guess you would need to look at the IL too and not just the locals list to figure out which ones are TryGet and which are TryGetOptional...

lucid iron
#

and a context to hold a list of those

uncut viper
#

and that wouldnt always account for mods that add debug commands, either

lucid iron
#

then for ui it will become a scrollable grid or lane of focusable things

#

(under stardewui terms)

rancid temple
#

Also, just remembered, isn't there some kind of issue with trying to send commands from a mod?

#

I can call the methods directly I guess

lucid iron
#

yea blobcatgooglyblep

#

u would prob use reflection to build list of those

uncut viper
#

you might be thinking of chat commands? which are getting an API in 1.6.9

lucid iron
#

i forget if game has a dict of em

uncut viper
#

theyre all under DebugCommands.DefaultHandlers

#

dunno where custom ones are stored tho

granite bluff
#

are any events happening in pam's new house?

lucid iron
#

mystery

#

any events in the trailer also happen in new house

scenic heath
#

So, I'm trying to open the PathosChild mod suite in visual studio, when I build Automate I get errors. The first one is 'Game 1' does not contain a definition for 'Getplayer'

I installed the Pathoschild.Stardew.ModBuildConfig nuget package, any idea what the issue is?

granite bluff
#

damn so it's kinda the same path's?

brittle pasture
#

there's one where she prays to a Yoba statue in her new home

lucid iron
#

thats a 1.6.9 change

#

are u build against 1.6.9 beta?

uncut viper
#

pathos's repo is on the 1.6.9 beta

scenic heath
#

Ooh, derp I downloaded the wrong branch

rancid temple
#

I know there's a mod that automatically enables sending console commands from chat, dunno if it's up to date though, I wonder if it would work on Linux

scenic heath
#

Thank you

rancid temple
#

To circumvent the console issue

brittle pasture
uncut viper
#

was it SMUI or something

next plaza
#

SMUI was the stolen one

velvet narwhal
#

nah that's the stolen scui

brittle pasture
#

that's the stolen one

uncut viper
#

ah i see

#

no wonder it was under moderation review when i found it

lucid iron
#

im not sure how this one works

rancid temple
#

Didn't SMUI get taken down once?

velvet narwhal
#

ah, max

brittle pasture
#

oh yeah Max's was I was thinking of

lucid iron
#

it looks like u need to use this through reference

uncut viper
lucid iron
#

so kinda like space ui?

sweet sphinx
#

how do I make a new item?

#

like, say, a golden carrot

brittle pasture
#

[[Modding:Items]]

brittle pasture
#

edit Data/Objects for your items

#

[[Modding:Crop_data]] may also be relevant since you said carrots

sweet sphinx
#

delightfully, golden carrots will not be a crop

#

... are all the item ids even numbers?

uncut viper
#

item ids can be any string you want

sweet sphinx
#

yee, but the vanilla ones?

uncut viper
#

item ids USED to be numbers

#

new items are not numbers

#

theyre also not all even

sweet sphinx
#

cool

#

where would I find the sprites for items in the inventory?

uncut viper
#

Maps/springobjects

sweet sphinx
#

thanks

calm nebula
#

technically speaking there are infinite numbers

#

especially if floats are allowed

sweet sphinx
#

i cannot find the carrot sprite

uncut viper
#

oh yeah that ones actually TileSheets/Objects_2

#

dont question it

calm nebula
#

questions everything

#

why are we here

sweet sphinx
#

nah, it's simple, new items, new tilesheet

calm nebula
#

why do we exist

uncut viper
#

well, there is no Objects_1

#

and its not in Maps anymore

calm nebula
#

will I finish this sock before I have to do laundry

uncut viper
#

1.5 objects were added to springobjects

sweet sphinx
#

like, an irl sock?

velvet narwhal
#

yeah atra knits

sweet sphinx
#

nice

uncut viper
#

i thought atra vita

velvet narwhal
#

true

sweet sphinx
#

what are these?

uncut viper
#

the one on the right is the golden animal cracker

sweet sphinx
#

ah

uncut viper
#

everything in Objects_2 is from 1.6

#

there are some unused things

sweet sphinx
#

and the round thing?

uncut viper
#

dont know if the left golden seed is a thing

sweet sphinx
#

ah

velvet narwhal
#

i've never seen it

brittle pasture
#

likely unused

uncut viper
#

seedn't

sweet sphinx
#

lol

#

so uh, it'd be better to make & use my own tilesheet for custom sprites, than have everything have it's own file/png, right?

uncut viper
#

i think its technically better to have one big tilesheet but the difference is incredibly minute for the number of items the average mod adds

#

so, do what you want

sweet sphinx
#

who knows what I will add, lol

velvet narwhal
#

tbh once i get to 5 i make a sheet so i can just use index

uncut viper
#

i dont think it really makes a difference loading 1 png versus even like, 50, on a scale that a user would notice

#

i dont know when it would start to make an appreciable difference though. thats an atra question

sweet sphinx
#

I wanna be professional

uncut viper
#

tilesheets it is

velvet narwhal
#

it's probably based on size

#

as well as editmap being the most costly iirc

uncut viper
#

do you mean editimage

#

it is an expensive operation

velvet narwhal
#

SDVpuffersquint maybe

uncut viper
#

but theyd be loading it anyway and not editing it

uncut viper
#

thats an atra-asking-myuu-for-me question

#

(i dont actually care what the answer is but "thats an atra question" is my go-to for "this is a technical answer i dont have the knowledge for")

sweet sphinx
#

carrot(golden)

uncut viper
#

(atra is smarter than me and i learn a lot just by waiting for atra to pop out of lurking and say something)

velvet narwhal
#

i'm just happy to finally be able to parse the lower end c# talk SMCKekLmaoDog

uncut viper
#

well on your way to reflection crimes

velvet narwhal
#

once i figure out regular smapi c# i can go into transpiler crimes

#

alright round two picross SDVpuffersquint

frozen field
#

@ivory plume I want make a modder helper tool and I was wondering if it's okay to use parts of the Content Patcher code to start? mainly bc I already know C# and it's easier to start there (than learn js lol)

iron ridge
#

it's MIT, isn't it?

uncut viper
#

it is

hallow prism
#

(still it's nice to ask because then pathos may give clues if Mahy is stuck or be interested in project or stuff like that)

frozen field
#

this is also my first foray into making something open source AND using open source code πŸ™‚

gaunt orbit
#

Oooo what sort of tool are you thinking of making?

frozen field
#

I'm going to start with a tool that would essentially "summarize" what your mod adds/edits. kinda like LookupAnything, but not needing to run the game

#

as a way to help one find typos, case sensitive things, etc

#

I use c# at work so I'm very familiar with it, so my first iteration would be a standalone tool. then, based on feedback (and hopefully learning something like js), I can turn it into a vscode extensions or something similar

velvet narwhal
#

SDVpufferthinkblob a more in depth schema?

#

or do you mean for it to be c# mods

sweet sphinx
#

does smth like the beehouse(2 sprites tall) have to be on it's own tilesheet?

frozen field
#

not exactly changing the schema? it would be for CP mods/components. just an external json parser that you can run outside the game

brave fable
#

don't forget to add a Load entry to your Changes list with the spritesheet targeting that same asset key SDVpufferthumbsup

calm nebula
#

(if the question is "do I absolutely need to have multiple spritesheets" the answer is no.)

#

for example.

#

for example, VS hates me

#

what

gaunt orbit
brave fable
#

you can even have a single spritesheet for craftables and non-craftables, so long as the sprite is aligned with a 16x32 region on the spritesheet

#

just get the index right and you're good

velvet narwhal
#

how dare you have an image up from your workspace and didn't close out of said image

calm nebula
#

aNYWAYS for example, here's bigcraftables and normal objects sharing a spritesheet

sweet sphinx
#

and that is why I work from FireAlpaca's mdp files, they're never recognised

brave fable
#

(of course there's also nothing stopping you from making a spritesheet for every individual craftable, sprite frame, or item type. organisation is a bell curve of madness -> sanity -> chaos)

sweet sphinx
#

lol

velvet narwhal
#

you, too, can make a whole npc in just the content.json, portraits, and character sprites

calm nebula
gaunt orbit
#

With the exception of a few specific things like mail backgrounds or custom farm icons, you can pretty much mix and match whatever you want as long as the size and position is correct

uncut viper
#

theres no difference between loading one image with a billion things versus loading a billion individual things?

sweet sphinx
#

npcs terrify me

brave fable
calm nebula
#

I can kinda explain. The issue is that you want to keep your draws, as much as possible, from the same texture. BUT items are drawn with shadows, and it's always interleaved item-texture/shadow-texture/item-texture/shadow-texture

gaunt orbit
lucid iron
#

button can u give me a couple hundred thousand of your billion images

uncut viper
#

the curiosity wasnt practical difference i was interested in the (literally) technical difference

next plaza
uncut viper
calm nebula
#

one image has a good thing though. You can realize of your 20 billion purple fertilizers have slightly different purples

brave fable
#

is 'a little more' actually noticeable at all in practice

next plaza
#

Hence "technically" πŸ˜›

brave fable
#

or is it kilobytes

next plaza
#

There's also maybe a texture amount limit

calm nebula
sweet sphinx
next plaza
#

Though I dunno how big or small that is