#making-mods-general

1 messages · Page 549 of 1

woeful lintel
marsh reef
#

oh i didnt see that okok one sec

#

dont mind the sub bit i was trying everything i could think of, and "depth": (number) doesnt work bc it's rotations, I assume you probably know

woeful lintel
#

what does 3x5.png look like?

marsh reef
woeful lintel
#

oh wait, in the second Layer, the depth is inside the Source Rect, it should be inside the Layer instead

marsh reef
#

oh so like before the last } ?

woeful lintel
#

it should be "Source Rect": { ... }, "Depth": { ... } instead of "Source Rect": { ... , "Depth": { ... } }

woeful lintel
#

no pb, rotational furniture can be hard to figure out

marsh reef
#

🫡 i tried everything but moving where the depth was read at

rocky anchor
#

Okay, new question: In my config schema, can I have a conditional setup so the player can set one condition to 'All' and have all patches applied, or set it to 'Custom' and then can choose which patches apply?

fierce vault
#

Is there a reason why the last updated date wouldn’t change on a mod that’s been updated? Especially if a change log has been added and the manifest’s internal version has been updated?

brave fable
#

nexus is slow to clear the cache sometimes

urban patrol
#

@next plaza just a heads up, @pale river and i have discovered a very niche error with spacecore dungeons: when i wanted to make a second dungeon, i had to make sure it was a different name ({{ModId}}_DollHouse and {{ModId}}_ShadowRealm, instead of {{ModId}}_DollHouse and {{ModId}}_DollHouse_ShadowRealm). it was throwing the error linked above, and we think it's because the names are too similar. this is obviously low-priority, because the solution is just to change the name, but i wanted to potentially save someone else a headache in the future, even if it's just updating spacecore docs to say something like make sure the name is unique!

fierce vault
#

It can sometimes take hours then?

brave fable
#

it's not unusual

fierce vault
#

thanks

uncut viper
urban patrol
#

the juices!

uncut viper
#

The juices are safe. It's the crop you should be concerned about.

fathom hound
daring skiff
#

Love how the background blurs but the glass doesn't. That's such a nice touch.

fathom hound
#

what does it do?

uncut viper
#

It also gets grayscaled, though it's a bit harder to tell with the lavendar background overtop of it anyway

uncut viper
# fathom hound what does it do?

It extracts crop juices 🙂‍↕️ (exact details subject to me not wanting to spoil too much of my modfest entry before its done)

daring skiff
#

Your effort will not go unnoticed or unappreciated.

uncut viper
#

I hope so!

gaunt orbit
#

I am so outclassed right now

daring skiff
#

I spent a full night trying to figure out how to subtract the blue channel from the lightmap.

uncut viper
#

I have enough confidence in your ability that I think if you did try to make some custom shaders like this that you could do it

daring skiff
#

I also believe Wren could do anything.

gaunt orbit
#

💖

uncut viper
#

That also goes for you Dylan 😌

daring skiff
#

Thanks, now I believe I can do anything. This will backfire.

uncut viper
#

Honestly the Grayscale shader the monogame docs give you is a good enough jumping off point that it's basically just normal C# once you stay inside the main shader function

#

.. More or less

gaunt orbit
#

I've written shaders before, I just feel like I'm not at my peak creativity right now

uncut viper
#

gotta use the power of a modfest time limit to light a fire beneath you

#

no plan just code

gaunt orbit
#

jobhunting and financial struggles have been sapping both much of my time and a lot of my creative energy

modern frost
#

Hi! I was wondering if anyone could take a look at my MachineRules for the mod I'm trying to make? I've gotten almost everything to work except the actual putting an item in the machine and getting one out part. Sometimes it works and sometimes the item won't go in the machine. I've been trying to find any errors in my JSON for two days so I figured it's time to go looking for help. Everyone's been so nice in this community! I've learned a lot already from mod authors on multiple Discords, I'm new to modding so it's honestly probably an obvious error. Any help is greatly appreciated! ❤️ https://smapi.io/json/none/e1f3c8e7e70945ca933f7ad6e6cfcfd5 (I'm also using Extra Machine Configs)

brittle pasture
modern frost
modern frost
marsh reef
#

@woeful lintel is there any way you know of to get the items to be in the happy home designer catalog instead of just the carpenter?

brittle pasture
#

I see the issue
your code has Output Rules, should be OutputRules (no space)

#

@modern frost ^

modern frost
woeful lintel
marsh reef
woeful lintel
#

"Shows in Shops": ["Carpenter", "Furniture Catalogue"]

#

or add the Shop ID of whatever Catalogue/Shop you want the furniture to appear in

modern frost
#

@brittle pasture Yup, that definitely worked! Thanks again! You have saved my sanity ❤️

brave fable
#

spaces and title casing in JSON keys...

#

what a world, what a world

uncut viper
#

do you not title case properties

brave fable
#

capitalising words yes, lowercasing connective words no

woeful lintel
#

FF's todo list has Remove the fucking spaces from the fucking json keys in there for a future format update

uncut viper
#

i dont see any lowercased connective words in Furniture Catalogue

brave fable
#

Shows in Shops is the key

uncut viper
#

My eyes did glaze over that

brave fable
#

stare into the sprite juicer long enough and that happens

uncut viper
#

ive yet more staring to do

#

How do you feel about acronyms, blueberry

#

i.e. are you an NpcData person or an NPCData person, or perhaps most wildly, an NPCdata person

marsh reef
#

2/3 is the correct answer

urban patrol
#

AddNpcWarps gives me hives when it errors because i wrote AddNPCWarps

gentle rose
#
  1. the other two are crimes
uncut viper
#

I am NpcData even though my heart tells me I wanna be NPCData

lucid mulch
#

I'm team NPCData

uncut viper
#

I don't like the ending of one thing being capitalized next to the beginning of the next thing like that

marsh reef
uncut viper
#

Ephemeral, as seen in the upcoming 1.6.16 update.

#

spiderbuttons is { Ephemeral: true } NpcData

lucid mulch
#

also the acronym casing becomes more a mess with prefixes added as well, IAPIResolver

marsh reef
uncut viper
#

To me IApiResolver looks better

lucid mulch
#

Life is ephemeral make the most of it while you can

uncut viper
marsh reef
#

:( fair enough me neither

uncut viper
#

I could I just refuse to

marsh reef
#

what if i offered some pocket lint and 2 spare buttons

gentle rose
#

is offering buttons to button considered polite

marsh reef
brave fable
#

it's a loaded question though because NPC is an existing class, so in that case id always prefer NPCData for Data relating to NPC

urban patrol
half tangle
#

things get really weird when I'm doing something with [Notify] and my nPCData turns into NPCData

#

or I guess, rather, that I have to write nPCData to get NPCData

brave fable
#

i do sometimes get my solution invaded when i write thos instead of this and suddenly Pathoschild appears

#

took me a good while to figure out where that came from

uncut viper
#

i;m thinking about thos mods

opaque cobalt
#

for IS_Event in appearance modding, can I list multiple events for it or is each a seperate IS_EVENT a seperate condition?

brave fable
#

the wiki gives the format IS_EVENT <event ID>+, which means you can use one-or-more event ID as the value, and it'll of course evaluate to true if any one of those events is currently playing

#

e.g. IS_EVENT 1 77377 harveyExplodes blueberry.LoveOfCooking_houseOnFire

opaque cobalt
#

okay thanks. Wasn't sure if plus meant can list multiple or not.

urban patrol
quasi crow
#

how does one go about adding a couple dialogue lines without making a separate CP mod?

#

or should i just do that anyway even if its only a couple?

proud wyvern
#

if you have a C# mod already, you can use the same asset APIs CP uses

brave fable
#

assuming you're currently working on a C# mod? do as CP does and add a Helper.Events.Content.AssetRequested event handler and insert the dialogue yourself

#

you could also force it with addExtraDialogue or setNewDialogue

quasi crow
#

c# yes. thanks.

half tangle
quasi crow
#

that does indeed help, thank you

tacit sparrow
#

Making a mod for testing and dev event builder and wanted to get feedback from folks who made events to see what are some pain points with that process or steps that can be approved to be added to the mod.

half tangle
tacit sparrow
#

thanks I'll check it out

void aspen
#

do I always need a swimsuit action before swim action (like in spa) or I can just do swim

#

kinda wanna do a swimmable pond on my farm

#

not sure how to set tiledata properly

#

ig gon steal some from spa itself

scenic ferry
#

Tryna revamp an event - How do I use /changelocation with NPCs? Once I changeLocation the game goes "No NPC found named Wizard" which I assume is that it cant find the wizard in the new location?

#

nevermind gang. I just didnt capitalize the w SDVpufferwaaah

scenic ferry
#

once again facing Schedule issues
(Yes I have slept)
They spawn in bed, like they're meant to - LookupAnything shows their schedule is properly loaded - no smapi errrors - But as soon as 7:50am hits, instead of leaving their house they just... start walking right. directly through the wall, off to the void

https://smapi.io/json/content-patcher/aaddbf6c2c0e4684acccf4c4b1e455db

sweet niche
#

hi, maybe someone can give me advice about this

i was making portrait to have more expression to be used in the game, so because of that i need to change, add, or remove certain expression in base game (maybe reword some of dialogue too)
now i have 2 version of it,
first is copy-paste the dialogue (left image)
second using delimiter (right image)

now i do prefer right one but i wonder if i was aiming to make it support different language too, which i believe left one is more preferable
but now im not sure anymore what should i do about this

brave fable
devout otter
sweet niche
#

yea i do want to make it support other language too

#

but yea maybe i will do the left one and add all language in it, hopefully this the right decision

barren tapir
#

Are there any tutorials on how to do this?

round dock
sweet niche
worldly wadi
#

Heyyyyyyyyyyyy is it possible to code homossexual characters only using content patcher?

worldly wadi
#

I don't know if I already asked that, my memory is terrible, sorry ಥ⁠‿⁠ಥ

sweet niche
lucid iron
round dock
worldly wadi
worldly wadi
lucid iron
#

The can romance thing can be changed by When patch right

#

So you gotta check player gender to find out if u can date this NPC

#

However this can romance field is net sync which means if u got a male farmer and a female farmhands the can romance would be wrong

worldly wadi
#

So it wouldn't work in multiplayer?

lucid iron
#

Iirc there's some spacecore thing for mp

#

But yeah it up to u if u care

#

Everyone's bi in the valley by default

calm nebula
#

(You can also have a RejectItem on the bouquet)

#

Or use Spacecore

sullen rain
#

Does anyone here know how to do the assigning pronouns thing to the player and can dm me to walk me through it? I've reached out to a couple authors but haven't heard back

worldly wadi
lucid iron
#

If u want to make it easier for user u can also use gnmt stuff

sullen rain
#

I don't have dialogue tho. It's for my Curvy Girl body mod and I was hoping to introduce a feature to make the farmer able to choose their pronouns

lucid iron
#

Is the pronoun text something you control

hard fern
sullen rain
#

I just wanted to make it so the NPCs recognize the players pronouns while using my body mod

#

I had someone ask if I'd be able to edit it so they have he/him pronouns while using my femme body

hard fern
lucid iron
#

I don't think u can practically do that

#

It's better to just refer them to gnm i think

hard fern
#

the gender neutrality mod tokens should work fine for them with any mods that have compatibility for it

lucid iron
#

That one's been around so there's more support

sullen rain
#

Ah okay

#

Thanks anyway guys

#

I'm also having an issue where like 1 or 2 pixels on my body won't change skin colors or edits out part of a clothing item. If anyone is comfortable dming me to help me with it cuz it's technically nsfw

#

Don't think I can post it here

unborn badge
#

hello i want to make an npc that is as tall as demetrius but i dont want him breathing through his stomach. is there a way i could change the height of the breathing animation without using c#?

#

otherwise ill just have to live with it

hard fern
#

"BreathChestRect"

devout otter
hard fern
#

you then specify the area you want to breathe

unborn badge
tiny zealot
#

BreathChestRect mentioned
i'm here to help with my legacy /lh

hard fern
#

i have actually had An Issue where an npc decided they wanted to breathe through their stomach

#

i guess maybe lacey was breathing through her head

tiny zealot
#

only in prerelease versions! the very first release included patches to the breathing code to fix it for her specifically

#

but i'm also the one who got pathos to add the fields for it at the eleventh hour in the 1.6 alpha /lh

brave fable
#

all you needed was a c# component to set the age to 2 and it would've worked without bugging pathos SDVpufferpensive

tiny zealot
#

my c# component decided not to roll the dice setting age 2 on a marriage candidate

brave fable
#

not for stomach breathers though. they're beyond saving

patent lanceBOT
tiny zealot
#

atra how is that quote-worthy /j

calm nebula
#

Hey I practiced for years to breath through my abdomen

patent lanceBOT
brave fable
#

is that a /j for jenuine

tiny zealot
#

j for jerious

calm nebula
#

Ayra work up and found the quote button

#

Guys

#

Daily savings time sucks

hard fern
#

wow

fallow musk
#

any mod with shaders which also has opensource code? I cant seem to find anyone which has a github

calm nebula
#

Khloe's Cloudy Skies

fallow musk
#

thanks

ocean sailBOT
#

@fallow musk You leveled up to Cowpoke. You can now share images in all channels!

unborn badge
#

Does "BreathChestPosition" do anything? because i tried changing it but the breathing animation stayed on the same position

#

nvm i spelled it wrong 😭

flint relic
#

sup guys so I wanted to make a simple mod that replaces one existing clothing piece with one of my favorite hoodies and im unsure how to start and what to do

tiny zealot
ocean sailBOT
#
Fashion Sense

Fashion Sense is a framework mod that allows modders to create static or animated clothing, hair, accessories, and shoes that can be accessed through a special in-game menu. To access this menu, players will need to obtain the Hand Mirror from Pierre's Shop. The framework supports multiple content packs and also adds the ability to save, load, and export custom outfits.

Mod Users: Install Fashion Sense as well as any desired content packs. Content packs can be found by searching Nexus, or for an interactive list, click here.

Mod Authors: Instructions, tutorials, and tips for creating FS content packs are available on the mod's wiki.

unborn badge
#

"BreathChestPosition":
{
"X": 0,
"Y": -6
does someone know the logic of this function

#

when i set x to 0 de breathanimation is on the right side of the character (outside of the body)

flint relic
unborn badge
torpid sparrow
#

Hi deadpool

fallow musk
#

and thats why it seems to be outside of the body

#

the correct x might be the middle of left and right edge pixels of actual sprite

slender marsh
#

hi all! what’s the art program used for portraits?

torpid sparrow
#

i just use procreate

#

but asesprite is for pixel art

slender marsh
#

thank you!

calm nebula
#

!software

ocean sailBOT
hallow prism
#

just to check, float would expect something like 0.2?

#

as a value?

fallow musk
#

if youre talking abt C# syntax float f=0.2f;

lucid iron
#

Can't use f in json

tiny zealot
hard fern
#

cursed

tiny zealot
#

position is an offset, in screen pixels, from the default position, which is something weird like centered on the left edge of the 16x32 character sprite

#

in my experience you just have to trial and error the position value until it lines up. use multiples of 4, since NPCs render at 4x

tiny zealot
# hard fern cursed

(i would not have chosen that implementation, but it was literally five days before 1.6's release so i don't blame pathos for choosing the path of least resistance)

unborn badge
#

thanks i stopped his breathing for now but ill save your answer for when i finish his sprite

torpid sparrow
#

!startmodding

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.

torpid sparrow
#

forwarding to a friend in another server lol

tiny zealot
torpid sparrow
#

ah ok!! thanks :3

hallow prism
#

hmm

#

i wanted to add a modded tool from another mod using the additem command but i get an error

#

i assume CJB has some special feature to make it obtainable, but if not, does someone would have a clue about what i can try?

gaunt orbit
#

what's the error?

#

CJB uses the itemregistry like normal I think

hallow prism
#
[16:34:37 ERROR game] Couldn't apply action 'AddItem (T)NIVNet': an unexpected error occurred
NullReferenceException: Object reference not set to an instance of an object.
   at ExtraGIMapsRedux.Patches.ToolPatches.Pre_CreateToolInstance(ParsedItemData itemData, ToolData toolData, Tool& __result) in /home/programar/RiderProjects/Extra GI Maps redux/Patches/Tool.cs:line 73
   at StardewValley.ItemTypeDefinitions.ToolDataDefinition.CreateToolInstance_PatchedBy<mistyspring.GiEXredux.code__spacechase0.SpaceCore>(ToolDataDefinition this, ParsedItemData itemData, ToolData toolData)
   at StardewValley.ItemTypeDefinitions.ToolDataDefinition.CreateItem(ParsedItemData data)
   at StardewValley.ItemRegistry.Create(String itemId, Int32 amount, Int32 quality, Boolean allowNull)
   at StardewValley.Triggers.TriggerActionManager.DefaultActions.AddItem(String[] args, TriggerActionContext context, String& error)
   at StardewValley.Triggers.TriggerActionManager.TryRunAction(CachedAction action, TriggerActionContext context, String& error, Exception& exception)
[16:34:37 INFO  Console Commands] Sent debug command to the game, but there was no output.```
gaunt orbit
#

looks like a mod error

#

from ExtraGIMapsRedux

hallow prism
#

let me test it without it and see what happens

gaunt orbit
#

unlikely to be useful with the stacktrace though

void aspen
#

yoo almost 100 dls

#

and 1k views!!

hallow prism
#

ok it works without the mod, so i'll try to post a log

hard fern
#

🤔 i know npc's can't path to the backwoods but does that mean they're exempt from being there as part of an event too?

tiny zealot
#

no (see abigail's vanilla 14-heart event)

hard fern
#

ah right i forgot abby had an event there

hallow prism
#

technically they can even be in backwood if they start here (like lorax did)

gaunt orbit
#

why does VS do this?? it's infuriating

gaunt orbit
opaque field
#

Yeah it's totally doable 😄

#

How does one 'skip ahead' to a season? I need to test my fish but they are fishsticks that only occur in winter

formal crown
#

(CJB?)

opaque field
#

(I hadn't even thought of that - but probably I'll look ty)

torpid sparrow
#

is there a way to make gus walk back and forth during an event?

hard fern
#

should be on the event data wiki page 🤔

torpid sparrow
#

im trying with that but i am unsuccessful and bad at it

devout otter
#

advancedMove Gus true 1 0 -1 0 would have Gus continuously move left and right.

torpid sparrow
#

advancedMove Gus true 4 0 0 5000 -4 0 0 5000 i have this for move right 4, stop for 5 seconds, then move left 4

#

but he walks 4 right, then continuously down forever

tiny zealot
#

ah, well you gave him directions to move down 5000 tiles

devout otter
#

Which direction do you want him to face when stopping for 5 seconds?

torpid sparrow
#

down

#

but then move left

devout otter
#

Then 2 5000

#

Instead of 0 5000.

torpid sparrow
#

ah now its working

#

thank u

#

advancedMove many numbers

scenic ferry
scenic ferry
cedar thorn
#

hi everyone i wanted to ask someone more experienced with modding if it's possible to change the required ingredients for a preexisting vanilla recipe (eg i added cucumbers as a custom crop and would like to add it to the salad recipe ingredient list maybe)

hallow prism
#

it should be possible to edit the recipe

ornate trellis
#

hey guys, can someone help me out a sec here? I got a bug report from my spooky machines(just some simple BC that randomly produce some halloweenish vanilla items) that says when picking up one of my BC produced items the game crashes but all the red i see isn't really from my mod? the one that crashes the game is something VPP related, but idk if that somehow still has connections to my mod or something, so....can someone look at the log for me cuz the only mention in the log i find of spooky machines is some HomesteadyEdy picking up something from tipplers bane? https://smapi.io/log/3a45cdf46e27442e8676ce784047d4c9

ocean sailBOT
#

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

mellow laurel
#

I've noticed a few machine/VPP issues cropping up in tech support and the machine is always a lamp. I think it's something to do with that on VPP's side. #1476058120156348436 message (for this one it was a glowing pasta boiler)

gaunt orbit
#

there's... a lot of mods patching things in that stacktrace, it could be anything

final arch
#

(it is VPP and kedi is aware)

ornate trellis
#

ah ok then i shall tell them its from VPPs side and being worked on/the author is aware

hard fern
#

Glowing pasta boiler...

ornate trellis
#

glowing machines are cool, ok...

hard fern
#

But why does the pasta glow

torpid sparrow
#

Radioactive

hard fern
#

I see

ornate trellis
#

yes

torpid sparrow
#

My mouth tingles when I eat it

#

And then my entire body

hard fern
#

:(

torpid sparrow
#

And then I start glowing

hard fern
#

Allegy

torpid sparrow
#

Then I start floating

#

Spaghetti-woman I am

opaque field
#

All hail flying spaghetti

fierce vault
#

someone just said my mod has no file to download 🤦‍♀️

#

and they are right!?

hard fern
#

Uh oh

#

Did you make an oopsie

fierce vault
#

yes

#

and it's not fixing!

#

Just reuploaded them too

torpid sparrow
#

??

#

That’s weird

#

Did it have one before

fierce vault
#

it did and i archived them

#

Maybe I need to upload the file as not a replacement of an old one?

torpid sparrow
#

If you archived then maybe

gaunt orbit
fierce vault
#

oh man, now it says some files have not been scanned!

#

Did show they've been updated tho

#

after I didn't replace the appearantly non existent old files

calm nebula
#

4 frames isn't bad tbh

fierce vault
#

what should I do?

#

Idk why the virus scan says not all of the files have been scanned this time. What usually causes this?

#

still says 0 files on the page too

#

oh, I guess it just took a little while

true coyote
#

Nexus takes a long time to update replaced files I've found, if you do them back to back

fierce vault
#

Yeah, I had to just add it as new file and not replace it

true coyote
#

I wish hhd had a hotkey though, instead of having to place and use a cataloge item

fierce vault
#

then it showed the mod as updated almost instantly

barren tapir
gaunt orbit
scenic ferry
barren tapir
#

It's been a hot minute since I last used it, but yes!

gaunt orbit
#

alright so I assume you're already set up then

You would start by making a library project targeting .net 6, and then add the Pathoschild.Stardew.ModBuildConfig package. Then add a new class to the project that inherits Mod.

Then, somewhere, you would add a static method that fits the MachineOutputDelegate signature
Item MachineOutputDelegate(StardewValley.Object machine, Item inputItem, bool probe, MachineItemOutput outputData, Farmer player, out int? overrideMinutesUntilReady);

Finally, in your machine data, which you can edit with either C# or CP, you would set OutputMethod in the item output rule to MyNamespace.MyClassname, MyAssemblyName:MyMachineMethod

#

if you're using c# to edit data, you could also set OutputMethod like so
= typeof(MyClassname).AssemblyQualifiedName + ":" + nameof(MyMachineMethod);

#

I realize that's pretty dense, so if you have any questions about any of those steps, feel free to ask

true coyote
barren tapir
#

Thank you so much, I definitely do have questions which I will be asking later (I unfortunately don't have time to work on the mod right this moment).

Thank you so much for the help!

short pike
#

Hey would yall think I could make a new map in gadot or should I just bite the bullet and learn tmxl toolkit

final arch
#

gadot = godot?

#

we mostly use Tiled to create maps for Stardew

short pike
#

Yes sorry autocorrect is evil

final arch
#

!maps

#

!makingmaps

#

ok I suck at this

#

!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

final arch
#

ah there

short pike
#

I tried using tiled way back in 2020 when I first started modding and have since then been working on new npcs and movies for the theatre but I think its time to Actually Learn how to make maps

lucid iron
#

You don't need tmxl to load tmx maps anymore

#

It's just base smapi feature

patent lanceBOT
final arch
#

atra SDVpuffergasp

calm nebula
torpid sparrow
#

atra on their daily quote run

final arch
worldly wadi
#

Hello everyone! So, I'm trying to mod my npc to only date the male farmer. When they are married, if the farmer changes their gender to fem, it will trigger a cutscene where my npc divorces the farmer bc he is not attracted to girls. I'm currently using spacecore and betas to try to do so, is this code correct? I'm thinking abt changing the ChangeRelationship from divorced to friendly, bc if the farmer changes the gender and forget that they're married to my npc, they won't have to erase his memory to be able to romance him again, what do you guys think? I'm a bit new to spacecore and betas so have patience with me, please :'D

urban patrol
#

i'm not sure you can check farmer gender for the current player with a contains like that

#

although i see you have a null condition. it's better to use a condition for a trigger action than conditionally patching it with When

worldly wadi
#

I'll change that! Ty!

urban patrol
#

keep in mind that condition takes a GSQ instead of a content patcher condition like i linked

misty lintel
#

guys how do I make good portraits

#

im so bad at art

worldly wadi
#

Changed a bit.

tender bloom
meager ginkgo
#

how can I calculate the paddy crop growth speed? I have phases 2,3,3,4,3 (unirrigated) but 3 days need to be removed for irrigation and I don't know which ones, if it even matters

tender bloom
#

The crop phases correspond to frames in the crop sprite

#

It’s up to you how long you want each frame to be visible for

meager ginkgo
#

I'm updating the sdv crop planner to work with cornucopia crops and flowers, but I can't figure out how to edit the growth speed display based on if it's watered or not, I don't know if it matters which phases I remove/shorten

devout otter
urban patrol
#

i feel like casey probably wrote it intending that to mean true/false

worldly wadi
urban patrol
#

oh also, idk if you plan to consider gender changing multiple times, but if you want this trigger action to run again, you should set MarkActionApplied to false

stark ocean
#

i've got a question for anyone who might know: if i wanted to include an npc (with a sprite & portrait), but ONLY to have them show up in a cutscene, and never again would i need to make a disposition specifically for that character? or is there a way to implement it without doing all that?

urban patrol
#

you can add them as a temporary actor

stark ocean
#

and their portraits would be able to show up when they speak too? i'm forgetting if kel (from one of leah's cutscenes) had one or not

urban patrol
#

not sure tbh never used it

inner harbor
#

It happens automatically as long as the names match.

lucid iron
#

Kel doesn't have one but game does use temp actors often

ivory plume
#

@inland rain Hi! I got a few requests to show Immersive Scarecrows' and Immersive Sprinklers' ranges in Data Layers, but I'm not sure there's an efficient way for Data Layers to get that info through their APIs? It seems like it'd need to call the API for each corner of every tile on-screen.

Any chance of an API where Data Layers could do something like...

Object? sprinkler = this.ImmersiveSprinklers.GetSprinklerAt(tile); // maybe based on top-left tile?
if (sprinkler != null)
{
    IEnumerable<Vector2> coveredTiles = sprinkler.GetSprinklerTiles();
    ...
}
lucid iron
#

Bear is one who's got portrait i think

urban patrol
#

let me check

#

yes bear is npc

crude rose
#

Hello! I'm very VERY new to modding (and kinda coding in general). I wanted to get into Stardew modding and i wanted to start with something fairly simple - adding a new crop to the game. So the seeds kind of show up in the Pierre's shop (and it looks like this on a screenshot), but the sprites and name of the seed and produce doesn't show up? I did my content.json file based on some tutorials on wiki and other mods i have installed that add crops to the shop. I have my sprites in subfolder called assets, they are on different pngs (seed packet, crop growing and produce separately). Here are some screenshots. Sorry if the answer is obvious, i'm new to this SDVpufferthumbsup

torpid sparrow
#

Did you load your texture

crude rose
torpid sparrow
#

It can be anywhere but it has to be loaded I think

meager ginkgo
#

how does fertilizer that speeds up growth work for crop phases?

brittle pasture
#

the order doesn't matter, but if you're using custom textures you need to load it first before the game can use it

crude rose
#

Ohhh okay

#

Thank u both!!!

brittle pasture
uncut viper
#

(C#) If I have a stack of 8 things with certain mod data, and a player splits that stack in half (or just like, takes 1 off the top), does every stack still keep the same mod data that the original stack did?

brittle pasture
#

yes

uncut viper
#

Beautiful, thank you

meager ginkgo
scenic ferry
#

chat am I going insane
Other than the comments what is the difference in these two images

brittle pasture
scenic ferry
#

first one works, second one breaks npc schedule

meager ginkgo
#

the trailing comma?

scenic ferry
#

shouldnt that mean the second one if anything is better???????????

urban patrol
#

trailing commas have no effect

lucid iron
meager ginkgo
#

🤷‍♀️ it's different lol idk

inner harbor
lucid iron
#

What u gotta do is make sure ur patch is actually included

scenic ferry
#

i have been staring at my jsons for so long with no solution
Out of desperation I removed the second image section ONLY, replaced it with the first section ONLY

... and now the schedule works

#

i am going to decide to believe that somehow i accidentally changed something else that fixed it in the process

#

yknow what its fine its so fine at least it works again

#

Wait wait
Is it the difference in ModID capitalization on the D?

lucid iron
#

no

scenic ferry
#

damn

brave fable
#

oh you fixed it anyway. incredible

scenic ferry
#

ty for double checking anyway!!!
I literally have no idea what fixed it and im low key crashing out over that but its okay at least it works SDVpufferwaaah

brave fable
#

well as long as it doesn't move to high key or like caps lock i'm sure it's fine

brave fable
brave fable
#

there's also a couple places you've written {{WildStrawberrySeeds_name}} and {{Plant these in the spring}}, you'll notice later that this appears wrong ingame when the item actually loads, or is rejected by CP for being an invalid {{TOKEN}}

#

in your case, to fill in your display name and description you'd be using the {{i18n}} token with a key matching some entries in your i18n file (i-nternationalisatio-n), example here

#

({{WildStrawberrySeeds_name}} would be a valid token if you'd intentionally made one in a new DynamicTokens entry in your content file, but that's probably not what you want to do right now)

fierce vault
#

would doing a period in the middle of a {{ModID}}.modname break anything?

brave fable
#

do you mean {{ModId}}_NotAModNameButSomeOtherUniqueId

fierce vault
#

oh, yeah

brave fable
#

it should be fine since the standard is usually to split the ModID and OtherID by an underscore, not a period

fierce vault
#

like, {{ModID}}.npc

#

thanks

brave fable
#

but that's just an arbitrary rule used by some (most? all?) mods trying to find the ModID for some other item

#

so preferably use an underscore instead of a period between the two

fierce vault
#

Oh, hmm

brave fable
#

either way the full ID will remain unique so it's not likely to cause conflicts

fierce vault
#

I've also done {{ModID}}/whatever when I was using a {{TargetWithoutPath}}, so I assume that would maybe be even more desirable than a period. I just don't love the underscore lol

uncut viper
#

It depends on the context.

#

If it's an item ID or fish ID or similar, please use an underscore

#

For just a texture asset name, no one cares really

brave fable
#

to be clear you can name your item Jeff, ., ______, myFunnyItme123, ModId, or Item_{{ModId}} and the game will still successfully load it, anything else is just kindness to other users and yourself

#

but please use {{ModId}}_ItemName lol

uncut viper
#

The ModId underscore OtherId convention has been in place for years now and is very valuable to mods like Lookup Anything and others to properly identify the source of something

fierce vault
#

Ok. So I guess I should just stick to the convention if my mod adds any items, since it would be odd to have a {{ModId}}.npc and then a {{ModId}}_item in the same place

fierce vault
#

ok

uncut viper
#

Well it does it for NPCs too

#

It does it for a lot of things, I called out texture asset names because no one is generally inspecting just the texture all on its lonesome

#

If you look at an NPC and it says its from the "Parcy's NPC" mod, you can be reasonably sure that the texture called "Parcy.Mod/NPCTexture" is also from Parcy's NPC

#

But without following the underscore convention, something like Lookup Anything would not be able to say "oh yeah this is from Parcy's NPC" in the first place

fierce vault
#

I'll go change it then since it's more beneficial

#

thanks for explaining

uncut viper
#

To explain a little bit more: What LA et. al. does is split up the ID by underscores, then gradually checks each piece until it finds a mod in the modregistry whose UniqueID matches whatever segment its checking
So Parcy.Mod_MyItem gets split into Parcy.Mod and MyItem separately. If your uniqueID is Parcy.Mod, it can be found. But you can also do ParcyMod_MyItem and it'll still work, if your UniqueID is ParcyMod instead

#

If it can't find it with the first segment iirc it will then add on the next segment and check the combination of both, and so on until it has nothing left to check

calm nebula
#

#

What about my_fun_unique_id_strawberries

uncut viper
#

Without an underscore, though, if you had Parcy.Mod.MyItem, it will be split into... Parcy.Mod.MyItem and there won't be a mod installed with that as its uniqueid

uncut viper
brave fable
#

honestly you may as well just use jeff

calm nebula
#

I'm actually surprised it goes in that order

#

Also are you threatening to punch me?????

#

Or just shadowban me the way bluebs does all the time

fierce vault
#

off topic, but I'm glad to know about patch summary now. I think it's just helped me pinpoint a really dumb issue

uncut viper
#

No I just meant your mod would be turned off like a light switch 😌

fierce vault
uncut viper
gaunt orbit
#

Hey didn't someone at some point work out a way to use a render buffer as a texture asset?

#

Or am I misremembering?

#

I know there was a lot of talk about texture lifecycles involved

uncut viper
#

I'm kinda doing that for my modfest mod in which I am taking the finished world render in OnWorldRendered and then rendering it again as one image inside my own draw call

#

But I'm not like reusing the Texture2D for something else

gaunt orbit
#

Well I know how to just use a buffer as-is

uncut viper
#

Well a RenderTarget2D is a Texture2D so if you know how to use that you should be able to just plug it in anywhere that expects a Texture2D asset, no?

gaunt orbit
#

I was trying to figure out if I could feed one into the asset loader so I could use it with, say, buildings or items without having to redo a bunch of existing render logic

uncut viper
#

I think you want one of chu's things

gaunt orbit
#

@lucid iron

uncut viper
#

Something they PR'd into.. Lookup Anything maybe?

gaunt orbit
#

That does sound like something chu would do

uncut viper
lucid iron
#

one of my things

#

theres nothing special to do wren u just use it in wherever that accept texture2d

#

i think if u were to load it through the pipeline u have to do something stupid with alphas though

uncut viper
#

Would BlendState.NonPremultiplied help there

lucid iron
#

so i didnt go with this and just did manually put data into Color[] stuff in grass variety

lucid iron
fierce vault
#

so I'm getting this in the patch summary| Exclusive | Jack Sprites (Load Characters/{{ModID}}_Jack => Characters/parcy.jack_Jack) // hint: asset name may be incorrect (shouldn't include '.jack_Jack' extension).but I thought the mod id is supposed to be placed here { "LogName": "Jack Sprites", "Action": "Load", "Target":"Characters/{{ModID}}_Jack", "FromFile": "assets/JackSprites.png", },

lucid iron
#

the theory of put RenderTarget2D into pipeline is sound

#

and it didnt explode or anything

#

it just had wrong pixels

calm nebula
#

It's funky though because of lifetimes

#

If no one tries to edit it later it's probably okay

gaunt orbit
#

Really?

lucid iron
fierce vault
#

Oh, because his sprites are broken though

uncut viper
fierce vault
#

I fixed the asset name, so I really don't get it

gaunt orbit
#

Doesn't smapi read the raw pixel data into an existing image?

lucid iron
#

but yea wren i would probably play it safe and just do Color[] stuff MikuBear

#

or figure out what i did wrong with the alphas bolb

gaunt orbit
#

Yeeeaaah that wouldn't work for the kind of realtime effect I want

uncut viper
#

Tbh I think it's fine to skip the asset pipeline here

lucid iron
#

hm wait u can just postfix resetTexture right

calm nebula
#

What are you doing anyways

gaunt orbit
#

I'm not sure, I haven't looked into it too much yet

lucid iron
#

replace the texture with ur own Lazy<Texture2D> bolbsun

#

that seems fine and less pipeliney

gaunt orbit
#

I figured I'd start here in case it was an already solved problem

uncut viper
#

Did you have an end goal/effect in mind or is that spoilers

gaunt orbit
#

My immediate application is that I want to use shader effects on world objects

#

I can't just do my own render pass for that because there's no depth buffer

lucid iron
#

they gotta rename mod fest to shader fest kyuuchan_run

torpid sparrow
#

is it possible to replace a tile during an event with a sprite not on the same tilesheet

uncut viper
proud wyvern
lucid iron
#

i think if u do like

Building_resetTexture_Postfix(...) {
    if (wrenbuilding)
        texture = new Lazy<Texture2D>(makeRenderTarget2DWithWhateverShader);
}

this would probably be fine?

proud wyvern
#

But yeah I think the bigger problem is having to end the batch and start a new one

lucid iron
#

pls imagine reset of the impl

urban patrol
uncut viper
torpid sparrow
fierce vault
#

all my npc shows up as is a shadow with a large black dot (Idk where that's even coming from) what doc would be most likely to have the mistake?

uncut viper
#

I've lost track of how many times I've crashed my menus because I had one too many or one too few batch calls scattered across every drawing method and every drawing loop

urban patrol
proud wyvern
#

Unless the depth buffer would preserve this info correctly, I actually have no clue how it works with the order param for SpriteBatch

urban patrol
torpid sparrow
#

hmm actually i can use removetile

fierce vault
#

thanks

torpid sparrow
#

im removing items from a table

#

why didn't i think of that earlier

#

(didnt know it existed)

uncut viper
urban patrol
#

i know that changeMapTile persists only to the end of the day; you should check if removeTile has the same behavior

gaunt orbit
#

(if enabled)

proud wyvern
#

Oh cool

torpid sparrow
#

thanks nic!

proud wyvern
#

Then I guess you really could just change the main render target to give it a depth buffer huh

gaunt orbit
#

Of course that would mean that enabling the depth buffer would probably fuck up the existing layering

uncut viper
gaunt orbit
uncut viper
#

Wouldn't you also have to change every single time the game opens a new batch, which it does constantly

calm nebula
#

I thought that was (a) just convention

calm nebula
#

And (b) handled in the c# of monogame

gaunt orbit
uncut viper
#

Game1.DrawWorld() alone does it a billion times

#

(I don't mind pings)

proud wyvern
uncut viper
#

This is just one snippet of it

brave fable
#

i don't hear anyone complaining about the frequency of spritebatch end/begin calls 🙂‍↕️ they're usually just talking about clint or something

proud wyvern
#

I wonder if it would make a visible difference if these Begins/Ends were more consolidated, or outright removed where not needed

uncut viper
#

I don't know how these other SpriteSortModes come into play with things either

#

Which is the main reason they seem to be beginning and ending batches so much

gaunt orbit
#

Well texture sorting would have some benefit

uncut viper
#

I have to assume they are important but I've not seen them make a difference in my own code when I was swapping between them to see what happened

gaunt orbit
#

Texture sorting is probably the only one that would have any benefits, and you'd have to draw a lot of sprites to see a notable difference

uncut viper
#

What does it even do?

proud wyvern
proud wyvern
gaunt orbit
proud wyvern
#

I assume texture sorting would not do that

uncut viper
#

The monogame docs just say sorts by texture so I wasn't sure what that meant, otherwise it's the same as deferred (and depth is ignored like deferred as well)

gaunt orbit
#

Vs depth sorting where it has to use multiple calls to ensure correct layering

#

Tl:dr it's faster to have a few big meshes than a bunch of tiny ones

#

HOWEVER in the case of stardew any benefits are likely overshadowed by all of the other game logic that happens every tick

uncut viper
#

It still isn't actually drawn until you invoke End() anyway

#

I would've thought it'd be similar to the other depth based ones then in that case, since it's just sorting by a different metric

jaunty shuttle
#

How large can I make a forageable bush? And can I have 2 forageables on the same bush that are available in different seasons?

gaunt orbit
#

No, bc if all the "adjacent" sprites share the same texture, they can all be turned into one giant mesh and sent to the gpu all at once. If they're sorted by something else, then it has to create a separate mesh every time one texture overlaps another and send them one at a time

#

Which is also a big reason texture atlases are a thing

calm nebula
#

One reason why flickering happens

uncut viper
#

I don't think I understand but I am mostly content to not understand but don't want to leave your explanation unacknowledged, so I am acknowledging it. /lh

#

(Mostly because I don't know how to explain why I don't understand.)

gaunt orbit
calm nebula
lucid iron
#

i also dont get it but merging all the grass into 1 mega grass atlas made my mod zoom

#

thats enough knowledge of renderings for me

patent lanceBOT
uncut viper
calm nebula
#

Anyway

uncut viper
#

Well "in place of" only if you were previously using anything that is not Deferred or Immediate mode.

calm nebula
#

Game changes the sort method repeatedly, like for every snek

#

Err. The big snek

#

Anyways it works fine for vanilla which is all that matters

uncut viper
#

But why didn't CA take Wren's mod considerations into account when writing it?

gaunt orbit
#

I'm fine with using buffer textures. I just need to do a bit more research

calm nebula
#

Go petition a dev then lol

uncut viper
#

You could skip prefix Game1._draw()

calm nebula
#

Is that method virtual?

uncut viper
#

Yes actually

calm nebula
#

Great!

#

Just derive from SGame

uncut viper
#

This is an instance where I actually feel like a skipping prefix is the safer option lol

fierce vault
#

I want to get rid of the shadow, but the game's giving me errors with just this "Shadow": [ { "Visible":"false" } ]I don't see any examples on the wiki for how to specifically fomrat it, so I tried copying how an npc's "Home" is written in the json.

patent lanceBOT
gaunt orbit
#

Maybe once the modathon is done I'll try and do a smapi PR for effect loading

calm nebula
patent lanceBOT
calm nebula
#

Ahhh

fierce vault
#

yay! it worked

lucid iron
calm nebula
#

I was joking about an "EditAudio" mode...

brave fable
#

i can't wait for BetterGameDraw to come out so we can all hook into a more performant draw method

patent lanceBOT
fierce vault
#

I've noticed that I need to quit smapi sometimes for a patch reload to do what it supposed to after a while. Makes sense when I think about resarting a computer if things are wonky

uncut viper
uncut viper
calm nebula
#

gets murdered

uncut viper
#

So you only plan on editing your typical Box Blur Effect

calm nebula
#

You can do more than that with a convolution

uncut viper
#

Maybe you can.

fierce vault
#

I'm just testing the game, but sometimes you get hit with how good the music is and have to take a break to listen

#

and now I'm stuck because the song just started replaying again!

calm nebula
#

Anyways Button what are u making?

uncut viper
#

Right now I'm making a quick snack before I run to the store for some stuff 😌
Mod wise I'm making a mod

#

(Trying not to be too spoilers before I post the finished thing)

calm nebula
#

It looks super cool!

gaunt orbit
#

so I'm looking into this and it seems like it would actually be fairly easy to do this in a framework way by injecting a custom IContentManager into SMAPI's ContentCoordinator

#

you could safely load rendertargets as regular textures without worrying about people trying to edit or load over and zero harmony

uncut viper
#

Inject it where?

gaunt orbit
#

it just uses a List<IContentManager>

#

all you'd have to do is add it and implement the interface, in theory

lucid mulch
#

just an FYI you will have to redo that partially when 1.6.16 goes live

#

it gets renamed from IContentManager to ISmapiContentManager because vanilla gained IContentManager

cedar thorn
#

i've actually been editing every recipe to make them a bit more accurate and realistic haha

gaunt orbit
#

never mind I figured out another way to do it

solar vessel
gaunt orbit
#

every day I discover new c# crimes

patent lanceBOT
scenic ferry
#

Hey gang, first attempt at randomizing dialogue here (and also still learning how i18n works). I sense I am doing something silly wrong

cedar thorn
solar vessel
#

for diff cheeses

cedar thorn
#

ooh fun

autumn tide
ocean sailBOT
#

Log Info: SMAPI 4.5.1 with SDV 1.6.15 build 24356 on macOS Unix 15.5.0, with 56 C# mods and 30 content packs.
Suggested fixes: One or more mods are out of date, consider updating them

autumn tide
#

i have stupidly complex dialog randomization, I can send the file over for you if you wanna use it as a base!

scenic ferry
#

oh that'd be helpful! I dont think im going to go too crazy but at least for basics 👀

autumn tide
#

okay! lemme find them and I can DM you

fierce vault
#

oh, another mac user? I take note when I see that lol

autumn tide
#

sadly i am

#

omg you're choco now too-

fierce vault
#

I can relate 🙃

fierce vault
autumn tide
fierce vault
#

are you still on sequoia too?

autumn tide
#

uhhhhhhh

#

i haven't updated it for at least 6 months no

fierce vault
#

Oh, sequoia (which I’m pretty sure im on) is older than that

lucid mulch
tender bloom
#

I feel like I’m on sequoia

fierce vault
#

idk how to interpret that 😅

autumn tide
#

no share with the class we need to know

lucid mulch
#

Oh been there done that

tender bloom
#

My computer background has trees so it’s probably sequoia

lucid mulch
autumn tide
fierce vault
#

Oh, I changed my background as soon as I could

lucid mulch
#

windows automatically changes my background to a variety of images its great

fierce vault
#

I’m not convinced about updating to Tahoe honestly

gaunt orbit
lucid mulch
#

its the same IgnoresAccessChecksToGenerator just the newer syntax iirc

#

or the older syntax

#

one direction or the other

#

looks like old

#

I was running into issues when going from 0.6.0 to 0.8.0 and when it started working at all again I left it alone

scenic ferry
tender bloom
brave fable
gaunt orbit
lucid mulch
#

internals become public with that method, but private is still private iirc

lucid mulch
scenic ferry
lucid mulch
#

also patch reload wont reload i18n you need to also run the i18n reload command

scenic ferry
#

AHHHH that makes sense

#

nevermind, still no luck ;-;

lucid mulch
#

can you do patch summary <modid> and upload a log (remember that you dont need to turn off smapi for log uploading)

scenic ferry
#

o7

ocean sailBOT
#

Log Info: SMAPI 4.5.1 with SDV 1.6.15 build 24356 on macOS Unix 13.4.0, with 11 C# mods and 6 content packs.
Suggested fixes: One or more mods are out of date, consider updating them

lucid mulch
#
  loaded  | conditions | applied | priority  | name + details
  ------- | ---------- | ------- | --------- | --------------
  [X]     | [ ]        | [ ]     | Default   | Vael Marriage Dialogue > assets/data/marriageDialogue.json > EditData Characters/Dialogue/MarriageDialogue  // invalid input arguments (funReturn.1, 2, 3, 4, 5, 6, 7, 8), token I18n doesn't allow more than 1 argument.

also fix funReturn in the same way as funLeave

#

when the token errors out like that and is declared unready, that will take the entire EditData action out with it, so you weren't actually editing Characters/Dialogue/MarriageDialogue due to that

scenic ferry
#

ohhh i see, so if anything breaks it takes everything down with it?

lucid mulch
#

the patch is only ready if all of its dependencies (ie tokens) are also ready

#

it it simply pointed to an i18n key that didn't exist it wouldn't have errored out and just return translation not found or something instead, but because you tried to give a token that accepts max 1 input 8 inputs, that was a formal error

scenic ferry
#

I see!! That makes sense
Thanks so much, its working now :)

sinful vector
#

hi people - I've got a mod I made working, but I need to do things like test edge cases and whatnot, and I'm just curious about testing in general. Do y'all have unit tests enabled somehow? And how do I do things like manipulate stats in game (for example, editing energy and friendship)

#

oh gosh this is probably on the wiki huh -- well still would love to hear what y'all do

tender bloom
#

Sometimes I just release mods and see who complains, for bugs

#

For customize wedding attire i actually wrote out all the combinations of marriage roles and config options and tested them

#

It was very tedious

#

For energy and friendship there are console commands

#

Honestly it’s hard to write unit tests for “does this look weird in-game”

#

And I’m not that professional

hoary flame
#

I use CJB cheats a lot during testing bc I'm too lazy to type in console commands for everything

tender bloom
#

In fact I’m not a professional programmer at all 😛

#

A lot of CJB can be done via console commands but sometimes it’s nice to have the interface

scenic ferry
#

cjb my beloved

scenic ferry
#

dont have to constantly be looking up the right console command

tender bloom
#

CJB cheats is a mod

#

I have some of the common console commands memorized at this point

#

So it kind of depends what you prefer

scenic ferry
#

i use a mix of both for sure

sinful vector
#

wait, can you put console commands in the console that shows up and spits out the mod logs?

scenic ferry
#

yep

sinful vector
#

I was trying that and it didn't seem to work

tender bloom
#

Yup, assuming you have console commands installed

#

Did you delete the default mods that come with SMAPI?

#

That’s the most common reason they don’t work at all, but it’s also possible you just have typos in the command names or something

#

It should talk back at you if it didn’t work, in most cases

#

Like “command not recognized”

sinful vector
#

yeah it's chattering at me

friendship
[SMAPI] Unknown command 'friendship'; type 'help' for a list of available commands.
help friendship
[SMAPI] There's no command with that name. Type 'help' by itself for more info.
relationships_friendship
[SMAPI] Unknown command 'relationships_friendship'; type 'help' for a list of available commands.
lucid mulch
#

debug friendship

tender bloom
#

Try “debug friendship”

sinful vector
#

ohhh debug

lucid mulch
#

the SMAPI debug command is what will forward the commands to the vanilla command system

sinful vector
#

thank you!

#

i see i see and the other stuff that i can do came with these other mods

#

this is so much fun

tender bloom
#

It does add the temptation to just “debug whereis Leo” lol

#

So much power

sinful vector
#

i probably won't do unit tests and i won't be testing multiplayer on my own yet

#

i presume I could test multiplayer somehow

brave fable
#

yeah, you can quite easily test multiplayer by simply opening two instances of the game and connecting to a multiplayer game hosted by the first instance by leaving the IP address field blank

#

local splitscreen is also often worth testing, but you typically need a gamepad for that

final wadi
#

Hello everyone! I am pretty new in the Making Mods scene (making a mod with a close friend) and had a couple of questions if yall were willing to help? I've hit a bit of a road block and I'm unsure how to progress woopsSweat

torpid sparrow
#

hi

#

whats ur question SMCPufferSquee

#

idk if ill be able to help but im curious

final wadi
#

For a bit of context;

Trying to make a Horse Mod, The concept is basically Wild Horses will spawn in your farm at different parts of the year, have different personalities, ways to tame them, so on and so forth. The way I thought of trying to start out was making the Horses NPC's rather than Modded Variants of the In Game Horses so that it'd be easier to go about giving them personality and the desired goal.

What I was able to do:

  • Get the Game to recognize that the NPC is in the game.
  • Have it Spawn just outside the Farm House

The Problem:

I...can't get it to move? I went about giving it dialouge, the ability to move in the content.json file and its just a uh...its just there SWEATS

#

At first I thought it was because the Horse was to close to the door so I moved it down manually a few tiles but no dice.

torpid sparrow
#

npcs dont work on the farm

#

afaik

final wadi
#

...Oh.

#

I didnt know that XD

torpid sparrow
#

no vanilla ones roam around ur farm sadly

#

for a reason*

latent mauve
#

The Farm is specifically blocked from NPC pathfinding, yeah.

final wadi
#

OOOOH

#

Ok Ok, so in order to test it then I'd have to go about ensuring I test it like in town then, yeah?

marsh reef
#

@woeful lintel am i able to call for multiple photos in one furniture piece?~~ it'll just be a big file its okay, if you see this before i figure it out, how do i put the specific frame times? for animations~~ got it :3

latent mauve
#

You could make them spawn in at other parts of Pelican Town instead, and then if you want them to be mounts, maybe make a custom stable building?

final wadi
solar vessel
#

OOoo

#

That's a good idea given I'm already making a stable for our project 📝

final wadi
#

Interesting...I will give it a go for sure! Thank you so much-!

solar vessel
#

Thank you SO much 😭 ❤️

final wadi
#

I thought I was going insane raff_AHHH

urban patrol
#

has anyone spawned monsters with spacecore and done a monster drop override for them? i can spawn the monsters in fine but they're dropping vanilla loot instead of what i specified

half tangle
#

I have not, but I was under the impression that FTM is generally recommended for that functionality

#

I know that's how Sunberry does it and I would assume RSV as well

pale river
#

bats drop wings and crabs drop bombs

urban patrol
#

yeah my mummies drop cloth and solar essence

#

i was really hoping to avoid adding another dependency bc i have so many already and am already using spacecore to spawn oter stuff as well

#

and i need to spawn monsters as a tile property

pale river
#

yeah same and spacecore doesnt have haunted skulls or magma sprites

#

i feel like the difference is spacecore's spawning is activated via trigger while FTM triggers every wake up

urban patrol
#

i don't understand how that would affect what they drop

pale river
#

thought you were still doing dungeons but i forgot you changed them to normal locations, I don't think FTM can work with dungeons is what I was trying to say

#

i feel like spacecore's doesnt change what they drop cus it basically just spawns vanilla enemies then retextures them

urban patrol
#

no i did actually change it back to a dungeon you're correct

#

but yeah it successfully retextures them but doesn't override their drops

pale river
#

yeah cus it doesnt really touch the drops

#

lemme recheck tho

urban patrol
#

there's a field to override

pale river
#

there's a field but it doesn't do anything

urban patrol
#

i cry

pale river
#

yeah i spent 2 hours crying this morning cus of it

urban patrol
#

well i guess i get to figure out how to do it in C# then

pale river
#

i was trying to do a solution but I could not build spacecore for the life of me for 2 hours so I gave up

pale river
#

it's one of the only few things without a description 😭

urban patrol
pale river
#

like the api has descriptions on every method except for that and a few and its like nooo whyyy

#

basically you need to use the method void RegisterSpawnableMonster(string id, Func<Vector2, Dictionary<string, object>, Monster> monsterSpawner); but good luck trying to figure out what each parameter means

#

and then its like confusion

urban patrol
#

does it not bring up the definition in VS if you double click it

pale river
#

i dont use VS

lucid iron
#

Func<Vector2, Dictionary<string, object>, Monster>

pale river
#

but yeah then you go check the spawnableimpl class to see what it does

lucid iron
#

this thing is a delegate

#

its a function to be called by factory to create a Monster

pale river
#

oh is it like new Bat() function or is that irrelevant (cus I thought thats a constructor)

#

ohh its starting to make a bit more sense but still not figuring out how to put all the pieces together

#

it's like i have a bunch of pieces but dunno how they all fit together

#

like

  1. you have the monster class
  2. you have the method you need to use with the monster class
  3. how to put two and two together and then use api things uhh me don't know I will be a monkey
brave fable
#

accursed monolith

pale river
#

cus it kept saying brackets in wrong places and other stuff in other classes I've never touched before

brave fable
#

you should be able to resolve most of the wip/outdated project build errors by unloading pretty much everything but spacecore and spaceshared

pale river
#

i kinda stopped after two hours cus it kept giving me an error code 127 cus it tried running a command when I tried building it, so I also thought it was bc maybe I just can't do it on macos

pale river
brave fable
#

ah, well whenever (if ever) you pick it back up again send some error messages and screenshots here

pale river
#

aw thanks so much!! Yeah I'm gonna take a break on it for now

dawn ore
#

Hey all, is it possible to add fish that only spawn in Stormy weather, just using Content Patcher? it looks like the options are only raininy or sunny? I want to add some rare storm themed fish

urban patrol
#

is anyone able to translate this for me? i'm trying to figure out why i'm getting an invalid tile message and i think i've traced it to here. i've checked that there's nothing on the buildings layer

if (!loc.CanItemBePlacedHere(tile, ignorePassables: CollisionMask.None))
                return false;
            if (loc.IsTileOccupiedBy(tile, CollisionMask.Characters | CollisionMask.Flooring | CollisionMask.TerrainFeatures))
                return false;
            if (loc.Objects.ContainsKey(tile))
                return false;
            if (loc.Map.RequireLayer("Back").Tiles[(int)tile.X, (int)tile.Y] == null)
                return false;
            if (loc.Map.RequireLayer("Front").Tiles[(int)tile.X, (int)tile.Y] != null)
                return false;
            if (loc.Map.RequireLayer("Buildings").Tiles[(int)tile.X, (int)tile.Y] != null)
                return false;

to my understanding, this checks that the tile is empty, but i must be missing something

#

being called by public static void DoSpawning

glossy plinth
urban patrol
#

[SpaceCore] No valid spawn tiles, using spawn group 'handwrittenhello.dbda_SingleMiseryWraithSpawnGroup'? which is thrown when validTiles.Count == 0

#

for context, i'm trying to use tile properties on setpieces to spawn monsters

#

i'm really hoping it's a me issue, because otherwise i'll have to either write my own C# or PR spacecore, neither of which i'm skilled enough to do yet

glossy plinth
#

I mean to me at first glance it seems to be checking a series of conditions, and returning false as soon as it comes across a failed condition. Only returning true when all checks pass.

urban patrol
#

yeah, and it must be returning false for one of these; i just can't figure out which or why

glossy plinth
#

Welcome to debugging. It literally never stops after this.

urban patrol
#

i wish i could breakpoint it but it's not my program lol

glossy plinth
#

Yeah, it do be like that sometimes.

storm lichen
#

any tips on what kind of character genres the game has left out so far? i want to make a custom npc, i've tried my hand at content packs and whatnot before. just kinda curious what people think would be interesting as character traits for a new npc

gentle rose
#

in my (subjective) experience, people often seem to like single-npc mods whose npc can be fairly easily summarised in one sentence (imagine for a youtube thumbnail for example)

#

so "detective npc" will be more popular than "npc who has a complex relationship with nature and family"

gentle pilot
#

please make it into Bahasa

storm lichen
gentle rose
#

if that's what you meant

storm lichen
#

oh i think i misunderstood

urban patrol
# urban patrol is anyone able to translate this for me? i'm trying to figure out why i'm gettin...

from what i can tell, it's checking:

  • does this tile have the NoSpawn property (no)
  • can an item be placed here (yes)
  • is the tile occupied by an NPC, flooring(?), or a tree/bush (no)
  • does the Objects dictionary contain the key "tile" (idk?)
  • does the map have a back layer there (yes)
  • does the map have a front layer there (no)
  • does the map have a buildings layer there (no)
    so the only thing i think it could be failing at is the Objects dictionary thing, but idk what it means. then it moves onto
var ext = loc.GetSpawnableExtData();
            var spawnDefs = Game1.content.Load<Dictionary<string, SpawnableDefinitionData>>("spacechase0.SpaceCore/SpawnableDefinitions");
            foreach (var sp in ext.setPieceCache)
            {
                var data = spawnDefs[sp.FromSpawnDef.Value];
                if (new Rectangle(sp.Tile.Value, new(data.SetPieceSizeX, data.SetPieceSizeY)).Contains(tile))
                    return false;
            }

which seems to check setpieces, but i'm not trying to spawn a setpiece with this spawn group; the setpiece should already be spawned, and it should then spawn a spawning group using what the tile property says to spawn

if i've misunderstood anything please let me know

urban patrol
storm lichen
#

oh awesome, thanks! :D

lucid mulch
storm lichen
urban patrol
#

you beat me to it haha

meager ginkgo
#

crop planner fork but for cornucopia is coming along pretty well :3

urban patrol
glossy plinth
#

I'm working on adding Generic Mod Config Menu support to one of my mods and I would like to self-report that I'm committing minor crimes against lambdas

setValue: value =>
{
    if (Config.SelectedDifficulty != Custom)
    {
        CopyValuesToDefault(Config.SelectedDifficulty);
        Config.SelectedDifficulty = Custom;
    }
    Config.DifficultySettings[Custom].FinalUpgrade.Sprinkler = Enum.Parse<SprinklerType>(value);
}
brave fable
quasi crow
#

is there a way to bump the priority or something when using Helper.Events.GameLoop.DayStarted?
or do i need to go prefix Game1.OnDayStarted()

gentle rose
#

what are you trying to run earlier than?

quasi crow
#

allCharacter.OnDayStarted(); called in Game1.OnDayStarted()

#

well, the loop allCharacter is in, not just the call

gentle rose
#

oh, vanilla code SDVpufferthinkblob could you do saveloaded and dayending?

quasi crow
#

hm. yeah that should work.

gentle rose
#

oh not saveloaded I guess, going by the wiki. but a similar one

quasi crow
#

saveloaded does seem right? it says right before DayStarted

#

which i assume is when Game1.OnDayStarted() is called

glossy plinth
#

Is there a way to force Generic Mod Config Menu to update displayed values when a value is changed (either in code or in the UI)?

In my case I have some preset difficulty options, but also a "Custom" option.

I want the displayed values to update if the user selects a different difficulty from the dropdown as well as if they modify a value from a default difficulty that it updates the selected difficulty to custom.

I can do all the data moving in the world in the backend, but I need to force the front end to update.

quasi crow
#

oh wait that would only be the first time. der

#

wait i only need it to work the first time, then dayending covers it. yes, xD

half tangle
#

You can recommend to players that they use the mod Reset Terrain Features (the unofficial update) in the relevant location if they're adding your mod to an existing save

devout otter
#

You can also use BETAS to trigger terrain reset if you don't want to instruct your user to do it.

half tangle
glossy plinth
#

I can't take a look at DSV because it's closed source.

#

I'll figure something out tomorrow.

half tangle
#

Dang, unfortunate

glossy plinth
#

Yeah, I suspect I'm doing something wrong. "Default" isn't resetting the values to their defaults despite following the tutorial, which tells me I might be missing something elsewhere in the setup.

woeful lintel
#

Damn, I got so used to hammering every FF feature into the game with Harmony that I transpiled stuff into Game1.DrawLighting without noticing the extremely conveniently placed hooks.OnRendered... I could have saved myself some IL work...

devout otter
proper bobcat
#

Hi, this is more of a brainstorm, but I'm trying to figure out if this fandom-related clothing mod of mine would be better as a CP or FS mod-

#

CP: I can implement a stall in the forest with some funny NPCs and dialogue, plus it's more 'immersive

FS: Dying the clothing is way easier + hair

I was wondering if anybody else has an opinion if they like CP (or, formerly, Json Assets) or Fashion Sense clothing more?

brave fable
#

community opinion is pretty split, both have their own merits. personally i far prefer CP

#

you don't necessarily need to choose between them for simple items like shirts, since FS supports CP-added clothing items that can be picked from the FS menu, you'd just need to follow the documentation on Floogen's FS github page

#

the best selling point for FS is having larger sprites and accessories, so if you're doing some oversized outfits you will actually need FS

proper bobcat
#

Wait, really? I'll have to check their Github when I get around to it since I do have some FS ideas. My main reason for considering FS is that the colour masks and dying seems more robust with FS since as for as I know, CP clothes mainly work by the vanilla dyeing mechanic?

#

Otherwise, I would go for CP without question, since I like the randomised stall idea (Blueberry, your Sailor Styles is actually the big inspo for this mod!)

dire kestrel
brave fable
#

CP clothes are essentially vanilla, so yep they're limited to the vanilla dye menu 🙂‍↕️ i'm actually patiently waiting on floogen to add pants, hats, and accessories to the CP+FS integrations so i can have a fully interoperable Sailor Styles selection

#

he mentioned he's looking into it so it's hopefully just a matter of time

brave fable
#

i took a shot at making a bespoke FS content pack for SailorStyles pants and gave up fast lol

proper bobcat
#

Thank you very much for both the input! SDVpufferheart I think I'll do CP for this mod since I can't resist shopkeeper banter, but probably if I do any pure comestic mods I'll use FS

dire kestrel
#

i wish u the best of luck 🪄 ✨

sinful vector
#

hold the phone - is there a "deploy your mod checklist" somewhere?

#

also i'm looking in the wiki for something about engaging with other mods (compatibility, but also like using their data?) and I haven't found it yet, does someone know if that exists?

lucid mulch
#

main one is update the UpdateKeys field on the manifest with the nexus id before actually uploading the mod

daring skiff
#

I've screwed this up twice this past week.

lucid mulch
sinful vector
#

ah cool - I think i saw that wiki page so I can do that

languid bolt
#

wow. i never want to learn to use tiled again. may it forever stay in my brain. Amen

brave fable
main plover
#

Hii Im a new player and Ive been trying to download mods through vortex mod manager but Im having troubles and its not working. I dont know anything about pc and stuff, is there a kind soul who can help me out? SDVpufferheart

languid bolt
iron ridge
main plover
#

@languid bolt if i have mods installed and i wanna uninstall vortex can I just uninstall the whole program or do I have to uninstall the mods first?

languid bolt
fallow musk
#

does anybody any shader mods where the shader effect is not applied on items like torches etc?

scenic ferry
#

hey gang, I added some new Breeds to my Pet otter - if I want to set specific flags depending on what breed is purchased, would I have to change this to have a separate purchase for each breed of otter? Changing T to be 1, 2, 3, etc each time? Or is there an easier way to check what breed of pet is bought?

#

admittedly this might be a question for Chu but I feel bad pinging them all the time

next quarry
#

(Question regarding ContentPatcher Event modding)
Does anyone know a nice way to add a fire flies type effect in events? (I thought asking can't hurt before I start to experiment with temporaryAnimatedSprite)

lucid iron
#

The part that currently says T can instead take a breedid

lucid iron
opaque field
#

Hmm… I’m starting to wonder if maybe livestock bazaar might be a good idea for my dessert animals

scenic ferry
#

Alright cool, so thats the easiest way of doing it
Thanks Chu! <3 youre always so quick to be helpful with this stuff i appreciate it so much

scenic ferry
opaque field
#

Omg thank you!! Now I gotta decide if I make a cute little shopkeeper or not haha

scenic ferry
#

absolutelyyyy

opaque field
next quarry
#

Thank you!

scenic ferry
#

@lucid iron TrinketTinker question this time: Can I check if a particular variant of a tinker is active? Or, set an ability that only a certain variant can use?
I want my Buff icon to change based on the variant of the trinket but am strugglin

lucid iron
scenic ferry
#

agh i was afraid of that
Thanks anyways though!

quasi dew
#

TIL shane doesn't have a clinic appointment? that tracks, but I never realized it until now

clever monolith
#

Hey guys
Dumb question
How are yall adding images/videos to the files section on nexusmods?
Like here

gaunt orbit
#

You can use bbcode to add images from links, but you can't upload directly to comments, so the images need to be already posted elsewhere

clever monolith
#

Ah gotcha
I assumed for some reason the file description section doesn't accept bbcode and went with it
Thanks!

opal glen
#

So I'm trying to add in some new diggable seasonal forage items - to make sure I'm understanding right, the game has a 40% chance of snow yam (416) and a 60% chance of winter root (412) based on these conditions, right?

#

and if I had it so it instead had:
Snow yam condition: LOCATION_SEASON Here Winter, Random 0.4
Winter root condition: LOCATION_SEASON Here Winter, Random 0.4
Modded item condition: LOCATION_SEASON Here Winter

#

Would that mean it was 40% snow yam, 40% winter root, 20% my item?\

gentle rose
#

please no Imgur though 😭

versed wyvern
#

Ahoy, I wanted to ask about something niche with portrait indices again, previously I learned from folks here that portraits laid out horizontally would break the hard-coded shortcuts for expressions like $h. I assume this means those expressions just fail to display properly but would anyone be able to confirm just how they break?
'Cuz just on a whim I thought I'd see what happened if I tried it for portraits with Dialogue Display Framework Continued, and every expression appears to be working on the one character I tested it with, leading me to believe/hope that the devs involved inadvertently fixed this issue while coding the rest of the functionality WoahThink

torpid sparrow
#

do imgur if u want to hide from iro

#

i encourage it /j

worldly wadi
#

Heyeyeyeyeyeyey is this code correct? (For context, I'm trying to make a bachelor that only marries the same gender)

uncut oriole
# gentle rose please no Imgur though 😭

irocendar! Hi! Sorry to reply to you randomly. We spoke about a month ago about a new launcher I was making for Android. I'm at the point where things are stable and looking to upload the apk on Nexus/Github + the custom fork of SMAPI.

Have you received any word about TapToMove?

gentle rose
uncut oriole
# gentle rose remind me what the question about it was? sorry, busy few months haha

I was wondering if I could port over the TapToMove code from Mobile SDV over to PC SDV.

Background info: I built a launcher for Android that runs the PC version of SDV. Zero SDV assets will be included in the apk, users need to supply it themselves. I have my own virtual joypad implemented but don't want to implement TapToMove if I have permission to port it over from Mobile SDV.

uncut viper
gentle rose
uncut viper
#

It's not a DDFC thing

uncut oriole
versed wyvern
uncut viper
#

Well no, people have tried. But no one wants to look through all million lines of the decompile just to verify it

#

It might work 99% of the time, but if there's 1% where it doesn't, you're kind of shit out of luck if you don't have room to rearrange your portrait sheet vertically again.

daring skiff
#

I remember a few years ago Nexus staff DM'd me to politely tell me my images were broken. But it turns out Imgur was blocking them.

#

I keep forgetting to move off that site.

versed wyvern
#

Alrighty, thanks for the insight. Given that they seem to show up properly with what I'm doing there shouldn't be any harm in at least making an experimental alternative portrait setup just as a potential workaround ThinkO_O

#

Nothing ventured, nothing gained AmagiSpin

wispy bramble
#

I've noticed a few mod pages simply putting the images they want to embed in the description into the regular images section of the mod page (at the end) so they could entirely avoid using 3rd-party image hosts.

daring skiff
#

The meta now is to make a private page/unpublished mod.

#

And just use that for your description embedded images.

tiny zealot
#

if i'm honest, i sort of like sticking to two columns for portraits. it's slightly easier to dash off the correct index when i'm using any portrait above $a, and it makes me consider whether i really need another portrait before i add one to the sheet /lh

uncut viper
#

My take is that you shouldn't put images in your file download descriptions anyway.

#

For everything else, the normal images section in your mod should suffice SDVpufferthumbsup

#

(GitHub also works as a host if you put up a repo)

versed wyvern
tiny zealot
#

well, that is a sticky wicket

uncut viper
#

(That's why I made sure to bring up that 1% example, bc I knew it'd be very easy for someone like you with hi res portraits to hit that "shit outta luck" threshold lol)

wispy bramble
uncut viper
#

You can

versed wyvern
uncut viper
#

But I think you definitely shouldn't, unless it was just for fun or cosmetics. Should ideally not put important information only found in the files tab, since it's not required to even see that tab in order to download a mod.

gentle rose
versed wyvern
#

Catching their attention with something colorful, the Cocomelon effect

uncut viper
#

See the part where I say it's not even required to see that tab in order to download

versed wyvern
#

Well ya can't win em all 02ded

cedar thorn
#

i'm editing vanilla recipes, does anyone know what the "1 10" and "l 100" represents? "Poppyseed Muffin": "453 1 246 1 245 1 -5 2 -6 1 247 1/1 10/651/l 100/",

torpid sparrow
#

1 10 are unused

#

u still need them

#

but they dont do anything

cedar thorn
#

i've been trying to figure it out all day

gentle rose
cedar thorn
daring skiff
#

Using images as your descriptions is such a massive accessibility issue but at one point in time it was really, really cool.

cedar thorn
#

thanks! is it the same for "l 100"?

torpid sparrow
#

so no l 100 matters

gentle rose
torpid sparrow
#

i think im not sure

cedar thorn
#

ohhh yes some of them have the friendship conditions that's right

torpid sparrow
#

hmm i dont see l as an option though

#

maybe someone else will know

cedar thorn
#

that's ok, thanks for helping <3

versed wyvern
frosty gate
#

Hi guys, so I have a few questions on how Content Patcher and data assets (https://stardewmodding.wiki.gg/wiki/Tutorial:_Making_Framework_Mods#Custom_assets) work.

  1. How does content patcher update the entries based on the conditions? Like for example if we add an entry that only reflects on Wednesday, does content patcher invalidates the entire asset for all mods and re-creates them?
  2. Similarly, can we know what entries are invalidated and update/remove them from the "private" cache?

Basically I'm trying to migrate the existing method that we're (stardew access) using to fetch accessible tile data to content patcher as that'll enable other mods to add descriptions of tiles of custom maps and hopefully also allow mods to edit them.

While the basic implementation was super easy, the real tricky part I beleive would be the dynamic-ness of tiles, since CP handles this perfectly. I already have an alpha build out in our discord server but It's like a brute force method, as this data will be quite huge, I want to ensure the loading/unloading is optimized as much as possible.

Thanks.

uncut viper
#

The AssetsInvalidated event won't mess with any cache you made or anything, but it lets you know that you might need to delete your cached data yourself

frosty gate
uncut viper
#

Content Patcher only deals with making edits in the Content Pipeline. If it's something you can do in an AssetRequested event, Content Patcher can do it. If it's not an edit you can make in an AssetRequested event, Content Patcher cannot d o it.

gentle rose
barren tapir
# gaunt orbit I realize that's pretty dense, so if you have any questions about any of those s...

I created the following method

public Item TapperLogic(StardewValley.Object machine, Item inputItem, bool probe, MachineItemOutput outputData, Farmer player, out int? overrideMinutesUntilReady)
{
    overrideMinutesUntilReady = null;
    this.Monitor.Log($"{inputItem.Name} ID: {inputItem.QualifiedItemId}", LogLevel.Debug);
    return inputItem;
}

How would I add this logic to the tapper object?

Right now I'm just trying to fiddle around with the tapper logic to figure out how it works.

Thanks!

uncut viper
#

(I feel like there is a non-zero chance that Nexus won't like people doing that eventually. Not high but not zero.)

urban patrol
#

personally i use imgbb but there’s no guarantees that it’ll remain accessible forever

versed wyvern
#

As long as people aren't able to do it with whole-ass videos I'm sure the file space required is a drop in the bucket compared to all the mods they host, at least WoahThink

lucid iron
#

What if u do ascii art headings

versed wyvern
#

Wait, can they do it with whole-ass videos shockedpeko

lucid iron
#

I think the vids must be yt link right

versed wyvern
#

Ooh, but wait, Nexus images also don't support gifs if I rember right

uncut viper
#

I mean just one thumbnail for Global God Rays is 20x the size of the .dll

gaunt orbit
uncut viper
#

I would not say image hosting is a drop in the bucket at all

calm nebula
#

But is it a drop in the bucket next to say

versed wyvern
#

I mean, the lion's share of Nexus content, especially the stuff for Elder Scrolls and such, has tons of high poly models and HD textures and such

calm nebula
#

1gb Skyrim mods