#making-mods-general

1 messages Ā· Page 172 of 1

rotund elm
#

I also have mine tagged

gentle rose
#

aren't there image asset translations too?

rotund elm
#

yea

uncut viper
#

for half my mods the only translations i even use are for GMCM menus

lucid iron
#

Well those don't work through i18n to begin with

uncut viper
#

CP config schema, too

gentle rose
#

I thought images/tilesheets were also through i18n but I guess not haha

lucid iron
#

That reminds me button does special power utilities support localizedtext?

uncut viper
#

hell if i remember

#

where at

#

the tabs?

lucid iron
#

I think love of cooking used that yea

#

So it shows up unparsed on the powers tabs

uncut viper
#

wouldnt holly have noticed that

#

either way i dont think SPU does bc i just didnt think about it/get tokenizable strings at the time but it should be simple to fix

rotund elm
#

I would just like to state, the Rock Paper Scissors mod is honestly the best multiplayer mod creation I have ever come across

uncut viper
#

string hText = data?.TabDisplayNameFunc is not null ? data?.TabDisplayNameFunc() : data?.TabDisplayName ?? data?.SectionName;
should just need to replace the TabDisplayName part at the end with a call to the text parser

lucid iron
#

That's a big ol tertiary u got there button

uncut viper
gentle rose
#

question mark georg

uncut viper
#

i like ternary statements

lucid iron
#

Very ? ful

gentle rose
#

the average person has 10 question marks per line of code--

uncut viper
#

it didnt used to be that long the TabDisplayNameFunc didnt used to even exist, that was a recent and quick change for the API i added

#

so it used to just be data?.TabDisplayName ?? data?.SectionName; which i think is fine

elder mountain
#

YAAAAAAAAY!

uncut viper
#

once i finish updating the BETAS docs and post the new version of that ill fix SPU

gentle rose
#

it worked, waymee?

rotund elm
elder mountain
rotund elm
#

I hate watering the crops early on XD

uncut viper
#

i honestly also dont know if it still works

elder mountain
#

It works, wow

uncut viper
#

it didnt throw immediate errors after 1.6.9 so i didnt touch it

elder mountain
#

It was necessary to replace pike with Pike in ID

rotund elm
#

Congrats SDVpufferparty

royal stump
elder mountain
#

I hope there will be no problems with the other fish

rotund elm
#

but it saves a bunch of time when you find a small error or don't know where there is an inconsistency

next quarry
#

any C# wizard here that can explain to me how I can make an API function for my mod? Wshyboi
basically I want some thing like OnMessageReceived that lets you access the user, chatMessage, color
idk if I'm explaining myself well here, sry

rotund elm
#

I'm just gonna start mentioning it like every 30 minutes in #modded-stardew XD

uncut viper
#

i think the percentage of people who play multiplayer in general is significantly lower, and the people who play it very often lower still

rotund elm
#

It still deserves more SDVpufferchef

uncut viper
vernal crest
#

Speaking as a support volunteer and mod author and a busy mum I wish nobody played multiplayer /j

rotund elm
#

wHaT 😭 but I get so lonely sometimes SDVpuffercry

gentle rose
uncut viper
#

i exclusively play multiplayer, so, the modding experience for it matters quite a bit to me

rotund elm
#

Pretty much same here

uncut viper
#

tbh i think its actually kinda hard for most mod authors to make a mod that does break catastrophically in multiplayer

rotund elm
#

I bought Stardew for 4 of my friends so I would never have to play alone XD

royal stump
#

split-screen and quicksave are the cases I hate thinking about, multiplayer's mostly been smooth for me SDVkrobusgiggle

uncut viper
#

(one of my mods does, but in fairness, it was the halloween modjam mod, so i didnt have time to care)

next quarry
uncut viper
#

oh, split screen is a different beast i forgot about, i was not including that in my general multiplayer stuff

uncut viper
#

quicksave i think should expect to break everything

royal stump
#

wrapping random bits in pathos's PerScreen stuff is usually pretty easy effective, but it's a weird mechanic all the same

vernal crest
#

I've played multiplayer a grand total of about 15 minutes before my wife abandoned me

rotund elm
#

How cruel

#

Divorce babes, divorce

vernal crest
#

It's okay I dislike multiplayer games anyway lol

rotund elm
#

kidding XD love adele

uncut viper
gentle rose
#

I've played LAN multiplayer with myself using two stardew instances on the same laptop once iirc but I have no memory of why

lucid iron
rotund elm
uncut viper
#

it seemed like a good choice to me since you'd be sending events so the other mod would not need to be constantly polling your API for the latest messages, they can just listen in

gentle rose
uncut viper
#

but it does ofc depend on your mod and the specifics of your implementation

next quarry
lucid iron
#

You will likely want to accept a delegate

next quarry
lucid iron
#

Basically let other mods register a event handler

#

Which u keep in a dict or whatever to call as twitch messages come in

#

As for making api itself u need to do it as interface + class impl

#

The interface is what people will copy from your mod

#

To use with GetApi

#

there should be wiki page on this

next quarry
#

yeah that's what I tried to do originally but failed

oblique meadow
#

is there a way to do an "or" statement with CP logic. I have a statement like so:

        "Action": "EditMap",
        "Target": "Maps/{{ModId}}_RusticRidge",
        "When": {
          "SurprisePick": "Adventuring"
        },
        "MapProperties": {
        "FarmHouseWallpaper":"12",
        "FarmHouseStarterGift": "(W)15 1 286 5 403 5 "
        }
      },```
Can I do something like 

```  "When": {
          "Farming Path": "Adventuring" OR "SurprisePick": "Adventuring"
        },```
Or do I have to list it twice
next quarry
oblique meadow
#

I read the github and I can't see anything about or statements

lucid iron
#

Well u know how interface and class work right bolbwawawa

vernal crest
next quarry
uncut viper
#

emphasis on "i think"

lucid iron
#

Oh i think u would probably just

#

Keep a list or dict of delegate that u got from other C# mods calling your api

#

That u iterate over and call

#

Rather than use actual c# events

#

It's essentially how trigger actions work

rotund elm
#

I can't wait for the day I understand all this C# talk... X|

lucid iron
#

The delegate would be an Action or a Func (if u want ret values)

light bramble
#

Question about licensing...again...I have a mod that I am ok with people editing assets of, but only the assets I created (the mod in question is the N3rd's Pets mod). I created the asset for one of the two dogs (boo) and someone else created the asset for the other (Java). Say I wanted to let people edit and remake the boo asset but not the Java one...Is there a license that works for that? Or do I just have to make a statement of which assets can be used, edited, translated, etc?

lucid iron
#

This is kind of a suggestion in a vacuum though, im not really sure what your envisioned use cases are

light bramble
#

Would it just be easier to list what is allowed for each mod? >_<

#

Cuz I do that on nexus already

vernal crest
uncut viper
#

you can say "these specific assets/the assets in this specific folder are licensed under [license]"

ivory plume
next quarry
lucid iron
#

The thing is im not sure how the smapi multiplayer messages help you here

light bramble
lucid iron
#

Those r for communicating between multiplayer instances

#

Not usually for 2 mods to talk to each other

uncut viper
#

not usually, but no reason it cant be

vernal crest
lucid iron
#

I don't think they fire in solo game

#

So the twitch streamer would have to be co-oping

next quarry
uncut viper
#

i dont recall seeing anything saying it doesnt happen on solo games

wary crown
#

Hey can someone tell me how to translate mods cause I’ve seen a lot of epic mods but they doesn’t have translated files so I’m considering to do the translation 🄰🄰

uncut viper
#

it does send the message to itself

lucid iron
#

Ok then it could work, just be very strange cus

uncut viper
#

(like the same computer that sent it will also receive it)

lucid iron
#

The other mod needs to copy the json class for parsing

#

At least it's not a hard ref

light bramble
uncut viper
#

you can send just strings

#

and from their initial message it seemed like the stuff they wanted to send can work as just simple strings

wary crown
#

I’ve opened with vscode but it has so many comments ,it would be hard for me to edit

vernal crest
lucid iron
#

Yeah i can definitely see how it can work but i also think actual api is better Dokkan

uncut viper
#

(tbh i think you can also just send like, any C# class like dictionaries or lists and it's fine as long as its not custom)

lucid iron
#

Api that accept delegate is pretty common, see gmcm api for example

#

Or iconic framework

light bramble
#

Time to work the magic that is adding files to github...adding, and removing, and adding, and removing, and add........

next quarry
uncut viper
#

i never meant to imply that an API is necessarily better or worse than the message sending, just wanted to point to the message sending as something to look into if it works

next quarry
wary crown
uncut viper
pine ermine
#

Is there a way of determining if a player has ever visited a GameLocation?

tender bloom
#

I believe a mail flag is set?

#

this is new as of 1.6 iirc?

uncut viper
#

conversation toppics get auto generated for each location

#

once they enter

#

content patcher also has a token for it

#

dont know what it uses to check

brave fable
pine ermine
#

That's helpful, I know where to look for the function now.

#

I see

#

It's stored in Farmer.locationsVisited

rotund elm
#

šŸ„– SDVpufferchef

scarlet quarry
#

so, I have a small silly question about a QoL feature i've always wanted but haven't seen anything like that yet in Stardew. How viable would be to make a mod where you just slide your mouse cursor over your inventory items to get them inside chests or any other storage? I do enjoy Stash to Nearby Chests, but I think that would be very nice as well! We have this kind of thing in Minecraft, but dunno why not in Stardew. So instead of clicking individually each item slot, you just, slide your mouse and boom!

whole raptor
#

That would indeed be amazing

pine ermine
#

I'd prefer the ability to click and drag items around instead like you can in the inventory.

lucid iron
#

Would it be like a modifier key to hold down

pine ermine
#

for Tai's idea, it probably would just be changing if the mouse botton is down while hovering over an item, rather than the normal check if the mouse button changes from not-down to down while hovering.

scarlet quarry
scarlet quarry
reef kiln
#

Is it possible with CP to make a machine that produces an item daily. Looking over the guide I don't see an option for it. For example the worm bin makes bait with no input needed each morning. the mushroom boxes are another example.

brittle pasture
#

yes, those are implemented in CP
check Data/Machines for the coffee machine

reef kiln
#

Ok, thanks.

pine ermine
#

In minecraft, normally you hold-down shift to make items jump from the inventory to the container, so the mod doesn't technically add or change and modifier keys either.

wooden cypress
#

@brave fable Do you have any insight about Remote Fridge Storage being incompatible? I'm trying to update RFS to work with the Love of Cooking menu and coming up a little blank

brave fable
#

no insight

scarlet quarry
#

doesn't seem very difficult at least

wooden cypress
# brave fable no insight

This line of code here is really getting my goat, originally it was "LoveOfCooking.Objects.CookingMenu" which seemed to be out of date, I changed it to the new LoveOfCooking.Menu.CookingMenu, but even still this line seems to just willfully not do anything if it detects your menu

brave fable
#

if the mod's choosing to willfully not do anything if mine is installed then it sounds more like it's incompatible by design

wooden cypress
#

Mod page indicates that it was at one point compatible

#

That line seems to in fact be the compatibilty patch, looking at the github history

#

As far as I can tell anyway

light bramble
#

Ok. Another question, this is with regards to a different mod (not yet published but contains commissioned art that only I have rights to redistribute.) Would I do a CC license for my assets but a non-CC license for the commissioned work?

uncut viper
#

if its not something you made and you havent gotten express permission, you are not allowed to license the art you commissioned whatsoever

#

regardless of what type of license it is

light bramble
#

I mean like would I use the commissioner's license

#

like they give me the license to include for their work

gentle rose
#

if the commissioner gives you licenses, then yes, use those for their files at the very least

#

if they don't and they say the work shouldn't be licensed, then like buttons said, you can't license it

light bramble
#

At this point I feel like I should just write acceptable use things instead of trying to figure out licensing...

uncut viper
#

"acceptable use things" are a kind of license

tawny ore
light bramble
brave fable
#

you could always just give up and not learn licensing. the secret third option

gentle rose
#

I love that "multiple hats" seems to be a bug that infects several mod authors SBVLmaoDog

brittle pasture
#

tf2 tower of hats real

uncut viper
#

im not saying anything about finding other licenses. im just saying that there is no "instead." doing acceptable use terms IS figuring out licensing

light bramble
#

Also Who let soldier into SDV

uncut viper
#

a license is just a very formal acceptable use terms page

#

("a license" here meaning the commonly used ones like MIT and whatnot i mean)

light bramble
drowsy pewter
#

Then do that

gentle rose
#

it really isn't tbh, an already made one is copy and paste

drowsy pewter
#

its fine

gentle rose
#

but if you feel like it is, then do that

uncut viper
#

its entirely up to you, as long as you arent defining what is acceptable for things that arent yours

light bramble
tawny ore
uncut viper
#

(and, to that point, if the person you commissioned DOES say "you must include my license" then you do not have a choice.)

pine ermine
#

What class is used for the chest menu?

tawny ore
tawny ore
light bramble
#

I've tried those. They don't really help me understand the licensing anymore that this convo did >_<

light bramble
vernal crest
#

The problem with writing your own terms is that if you don't understand licences you will likely write something incorrect that will not hold up in court. Not likely to matter here in the slightest unless you think you're likely to take someone to court for violating your terms of use but that's why it's recommended not to write your own.

#

Though I guess the argument could be made that if you write yours badly enough you might find Nexus and others in the modding community unwilling to enforce them or support you in doing so.

uncut viper
#

well. that second part is not something someone should be concerned with

#

bc thats not on the person writing the license. thats on the people violating it

tawny ore
#

It's probably unlikely that anyone would actually be going to court

rigid oriole
#

I tend to just not license my mod source code because I don't want people uploading them places. My one exception is an aedenthorn mod i updated and added a few features to because it came with a copy left license

lucid iron
#

Court is too expensive

uncut viper
#

"unwilling to enforce or support someones license" is just ip theft

vernal crest
drowsy pewter
#

I think the really important thing is that you actually understand whatever license/terms you end up choosing for your project

lucid iron
rigid oriole
#

Obvious nexus has a license to distribute but that's it ig lol

lucid iron
#

The important part about licensing mods to me is to create a way for other ppl to take up my spaget if i die in a truck accident or whatever

rigid oriole
uncut viper
#

when it comes to modding communities, really a license is mostly just so that you can feel safe no one is going to steal your work, or for someone else who wants to contribute to your work to feel safe that you arent going to go after them instead

rigid oriole
#

I'd like to welcome contributions and stuff. I just don't want it distributed

uncut viper
lucid iron
#

It would have to be like a clause i think think

drowsy pewter
#

I have an "if I die in a truck accident" clause

lucid iron
#

Since most open source code licenses usually say binary distribution ok

uncut viper
#

mine only extends to sedans

drowsy pewter
#

Dang

tawny ore
#

Technically, licenses that restrict distribution do not fall under "open-source" but rather "source-available" which probably isn't super important for the purpose of modding

pine ermine
#

Ugh, the code for clicking items is a mega spaghetti function. A really good harmony patch would be necessary to alter it's behavior in a meaningful way. SDVpufferdead

tawny ore
#

But you'll want to be looking for source-available licenses for examples of ones that have those type of restrictions

uncut viper
#

yeah im pretty sure the actual definition of open source requires you to let people take your work and do almost whatever with it

tawny ore
drowsy pewter
#

I just hope whatever conversation is had with the commissioned artist is more elucidating

tawny ore
#

@pine ermine What are you trying to do? I have a lot of experience with the ItemGrabMenu.

drowsy pewter
#

they're more likely to have an understanding of artwork usage rights

light bramble
#

Ok, So I looked over the licenses...I'm allowed to specify which assets are not mine to license but I have permission to use...right?

#

Seems the MIT license is actually best for me

tawny ore
#

So the ItemGrabMenu already supports heldItem, but the problem with Chests is that it automatically puts the heldItem back into the chest or player's inventory as part of it's receiveLeftClick

pine ermine
#

Yes I see that

tawny ore
#

If you wanted to implement dragging/dropping, I think the easiest approach would be to use the heldItem, but prevent it from being added back

#

So patch out the add back, and then inject the adding back when you release the mouse button

pine ermine
#

and that code is nested deep in a if-else tree, which makes it a fun harmony patch :P

wooden cypress
#

@brave fable CookingMenu is not a CraftingPage, right? It seems RFS works by injecting the chests directly into the _materialContainers of CraftingPages, but I do see you reference material containers in CookingMenu. Is there any way to directly affect those?

tawny ore
pine ermine
#

That would break the special logic for things such as books though

light bramble
#

Wait, does MIT say "Hey if you use my stuff, please credit me?" Cuz legit, that's kinda all I care about...credit if my stuff is used XD

brittle pasture
#

yes

light bramble
#

Awesome

tender bloom
tawny ore
light bramble
#

Oh gross I have to disclose my full name?!

#

Like first AND last

#

or can I just do First?

uncut viper
#

i just use my username

#

which is not technically correct probably. but i dont care

tender bloom
#

I use my username—same here

#

If it ends up mattering then I guess we can fight it out lol but there’s no way it will come to that

tawny ore
#

If you ended up wanting to use the license to enforce it legally, you would probably have to be able to prove that you are the one and only person associated with your alias.

tender bloom
#

I suspect that the additional context of the GitHub account, etc would end up falling in the favor of the person writing the code but not a lawyer here, no idea really.

#

Idk what the argument on the other side would be, ā€œI’m secretly the author it’s mineā€?

tawny ore
pine ermine
#

yes

light bramble
#

I wish I could rename directories in Github...

tender bloom
#

You can

#

It's annoying in web view

#

I usually do it as a command line push kind of deal

#

But Git does detect if files move

#

In web view, click on the bit at the top of the file that says where it is

#

it should let you type there

light bramble
#

I did that but it just borked EVERYTHING

#

I'll just remove and re-add XD

lucid iron
#

Are u like, using git via github

light bramble
#

Yes?

lucid iron
#

Instead of git cli/source tree/whatever

light bramble
#

I use website

lucid iron
#

It's a lot easier to not do that

light bramble
#

Should I not?!

brittle pasture
#

does CP/any framework support opening menus on clicking tiles like Robin/Clint's shop or is that C# land

light bramble
#

Frustrated Rose noises

lucid iron
#

I personally treat git as "sync me folder to the github site pls"

light bramble
#

So I should use Github Client?

lucid iron
#

Just git commit -a then git push

#

Things like vscode has git integration

brave fable
#

i find Fork much easier to use than sourcetree/github desktop/visual studio git

torpid fiber
#

which channel do i go if i have questions about mods

lucid iron
#

You just need to clone a repo then start editing inside

#

Many options really, take your pick

brittle pasture
#

this channel is for mod makers

lucid iron
#

But the core concept is that u do normal file editing stuff in a folder that happens to have a .git folder which holds all the metadata for version control crap

light bramble
#

Not me not using VSCode

brittle pasture
lucid iron
#

And u can obtain one such folder by cloning the repo

brave fable
#

vscode git is also pretty miserable

torpid fiber
brave fable
#

yeah if you want a shop to open then that's obviously supported already. arbitrary menus are going to need C# anyway, and you'll want to register a custom tileaction to open those

brittle pasture
lucid iron
#

Oh u want the dialogue

#

Yeah i don't think that's a thing cus encoding all that in a string would be a pain

tender bloom
#

I think there's a mod just for animal shop style stuff

#

is that yours chu

#

but other than that C# afaik

lucid iron
#

For livestock bazaar i did it custom based on the bazaar data asset

#

But obviously that's a specific use thing not general

tender bloom
#

aha I remembered a thing

#

good job self

brittle pasture
#

me?

lucid iron
#

So yes selph u should also just do a tile action ez

#

Im not really sure what a generic version of this would look like

tender bloom
#

menu > menu definition?

brittle pasture
#

maybe an asset of menu entries to tile actions?

lucid iron
#

Does it like, take a list of actions/tile actions

tender bloom
#

like you can define tile action > list of menus + the names for the options?

lucid iron
#

Yeah ig

tender bloom
#

You'll want nonsense with like i18n on those names and such

lucid iron
#

And it can be less pein if it's like

tender bloom
#

personally when I needed this kind of thing I just yoinked and C#

#

I stole the submarine dialogue

lucid iron
#

U just give id to a custom asset

tender bloom
#

and used it for my """submarine""" instead

lucid iron
#

That defines all that in a nice model

brittle pasture
#

just rotating ideas for a potential robin-like character who sells and builds stuff
and yeah I can easily do all this in C#, but a generic asset and framework could be nice

lucid iron
#

Next emc feature trust

tender bloom
#

šŸ‘€

brittle pasture
#

would be cool for an immersive way to be able to build 2 sheds at a time

drowsy pewter
#

Selph NPC mentioned

lucid iron
#

Selph BuilderEmporium framework trust

uncut viper
#

im not going to accept any builder-related framework unless they unhardcode the golden clock

light bramble
tiny zealot
uncut viper
#

i wish i never knew that the gold clock didnt draw properly unless it was specifically built by the wizard

brave fable
#

i don't see much point in trying to make a generic string-based solution for opening completely custom menus in a completely custom dialogue, you're using c# for everything else along the way

tender bloom
#

only genuine 100% wizard original will do

uncut viper
#

this is the building draw code

tender bloom
#

none of those counterfeit clocks

uncut viper
#

buildings are only Magical if they are built by the Wizard

#

at no other time is a building magical

tender bloom
#

robin isn't sparkly enough for us

uncut viper
#

at no other time does the clock have a face

tender bloom
#

which is so mean honestly robin is best girl

lucid iron
brittle pasture
uncut viper
#

i see a lot of point in making as many things potentially accessible to a content pack as possible

calm nebula
drowsy pewter
#

@light bramble theres a github desktop app that has a UI that's easy to understand

lucid iron
tender bloom
#

🪱

brittle pasture
#

and I would like to thank the worms for their service

uncut viper
#

(im just glad i never put too much work into my own trinket framework bc chu did it better than i could have)

#

i am very pleased with the name

#

tinker trinken

brittle pasture
#

Trinker Tinket my favorite

tender bloom
#

tink tink

tiny zealot
#

trinker thinker

uncut viper
#

trinken tinket

calm nebula
#

Localized text to action

#

Good enough for government work

lucid iron
#

hm what if u just

#

add more tile actions...

uncut viper
#

i dont think i was paying attention enough originally, what was the tile action wanted for again

#

just open a menu? any menu?

brittle pasture
#

text menu where each entry can trigger (tile) actions yeah

#

like robin and marnie who has services offered alongside their generic shops

uncut viper
#

that doesnt sound difficult

calm nebula
#

Then just add actions for everything you want

#

This action gives the player a propeller hat and flight

brittle pasture
#

lizard rental service tile action

#

that makes sense for a couple ppl in here right

uncut viper
#

yes

lucid iron
#

like this basically

tiny zealot
#

lacey literally has a tile action that does a menu with three choices that do different stuff, if looking at it will help you implement

lucid iron
#

oh i guess it should actually be like

#

Action QuestionDialogue for the first one

uncut viper
#

i think the desire is to make it generic, though, is Lacey's generic

#

arbitrary choices determined by content pack author

tiny zealot
#

no, lacey's is very specific

lucid iron
#

doing it like this has advantage of being visible in tiled and disadvantage of general map string text woes

brave fable
#

imo dealing with tiled properties is a disadvantage

uncut viper
#

what does chu have against knaves

brave fable
#

but i guess you can insert them via cp

lucid iron
#

the other proposal would just be like

#

Action QuestionDialogue <id>

#

and the id is a custom asset where all this is defined

onyx flame
#

is there a list of farmer's animations somewhere? like which id is which animation?

lucid iron
#

normal ass content patcher EditData things then

lucid iron
uncut viper
#

so we support crimes but not knaves

brave fable
#

honest crimes.

lucid iron
#

i support arsene lupin kind of crimes

uncut viper
#

is excessive reflection really that scrupulous

onyx flame
lucid iron
#

so selph can i steal this idea and toss it into MMAP

velvet narwhal
lucid iron
#

it seems useful ukimasu

brittle pasture
#

sure! less work for me when I get back

velvet narwhal
#

-# tbf, iro already made the lizard taxi service for me

uncut viper
#

the extra work is negligible, we've collectively been working on a to-do list to hand you once you're back from vacation

lucid iron
#

ill prob go with custom asset bc atra gave šŸ‘† of approval

brave fable
#

honestly i'd rather jump through a window than define a new property in tiled for every branching option in dialogue, so go for the asset

gentle rose
#

lizard rental service doesn't use betas rn but it does have the best lizard sprite ever drawn

lucid iron
#

i thought the lizard is like

#

a hors

lucid iron
#

unrelated to all this dialogue question talk

gentle rose
#

it's a retextured horse and the retexture is world-class

velvet narwhal
#

listen, selph said lizard taxi and that's all i read

gentle rose
#

same here

velvet narwhal
#

i am taking a break from main channels unless i'm specifically summoned KEK

tender bloom
#

if you have proper PPE

#

and an acid cabinet and all that jazz

brave fable
#

horse framework? print player events??

tender bloom
#

yes, all you need is horse

tawny ore
tender bloom
tawny ore
tiny zealot
#

i will not be reading that. i will continue to think about horse framework instead

spice inlet
#

current mockup for some new menu SDVpufferthinkblob

tender bloom
#

horse framework for lizards much better yes

#

that's a real cute menu

raw harness
#

So guys, I'm trying to make it so that when an item is chosen in the config (Generic Mod Config Menu), for example ā€œRubyā€, in the ā€œItemIDā€ instead of being (O)Ruby, it becomes (O)64, is it possible to do something like this purely with Content Patcher and avoid using csharp?

`{
"Format": "2.4.0",
"ConfigSchema": {
"MItemId": {
"Default": "Aquamarine",
"AllowValues": "Aquamarine, Ruby, Amethyst, Topaz",
"Section": "Section Example",
"Description": "Example desc."
}

},
"DynamicToken": [
    {
      "Name": "MItemId",
      "Values": {
        "Aquamarine": "62",
        "Ruby": "64",
        "Amethyst": "66",
        "Topaz": "68"
      },
      "Default": "62",
      "AllowBlank": false
    }
],
"Changes": [
    {
        "Action": "EditData",
        "Target": "Data/Shops",
        "Entries": {
            "Example.ModId_ExampleCode": 
            {
                "Items": [
                    {
                        "Id": "Example.ModId_ExampleItem",
                        "Condition": "SEASON Summer",
                        "ItemId": "(O){{MItemId}}"
                    }
                ]
            }
        }
    }
]

}`

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.

tender bloom
#

That sounds like a job for dynamic tokens (but also very tedious)

#

the high-level idea with a dynamic token would be to make a new token that corresponds to the item ID and set it conditionally depending on the value of the config

#

some more intruiging ideas might be to use i18n for the actual display names of the options

rocky anchor
#

Is there a clothing mod expert in here? 🄺 CP really hates loading my hats properly

tender bloom
#

I think this is possible but I forget for sure

uncut viper
#

im pretty sure you dont want to name your dynamic token the exact same thing as your config token

tender bloom
#

Not an expert in clothing but have poked it once or twice

#

oh yeah def name it something else

uncut viper
#

does content patcher even like. warn you about that

tender bloom
#

but it would be this terrible sequence of "When": "Ruby" "Value": "64"

tiny zealot
tender bloom
#

it's true, hit us with it

#

this is a free for all channel

rocky anchor
#

Fair enough, but we haven't been able to solve it so far

tender bloom
#

where all means all making mods questions

brave fable
tender bloom
#

what is improper about the loading?

tender bloom
rocky anchor
#

I can't get my custom hat to load with the correct show/change/hide hair attribute, even though the export of data/hats shows that it's passed through correctly with EditData

#

It tends to always change the hair, as though the value is false

tender bloom
#

Ah, that attribute definitely sounds annoying

#

Have you used lookup anything to check on the hat properties?

#

you can turn on ultra data dump mode

#

and get a really in-depth look at it

drowsy pewter
#

are you also deleting and respawning the item?

rocky anchor
drowsy pewter
#

Yes

rocky anchor
#

I'm reloading the mod

drowsy pewter
#

Some properties persist in the item instance

#

better to rule it out

uncut viper
#

when in doubt always trash an item after making any changes

tender bloom
#

items are sneaky like that

#

won't let go of their pasts

drowsy pewter
#

Me too, item, me too..

rocky anchor
#

Ohhhhhh okay, so

#

Am I not going to have success with a "Update": "OnLocationChange", with an EditData action?

calm nebula
drowsy pewter
#

You can do that but it depends on what you're trying to do

calm nebula
#

Tbh

drowsy pewter
#

Like, I cant change an item price on location change because item prices are baked into the spawned item

#

Even if the code technically works

rocky anchor
#

I want the hat to appear differently based on whether the player is inside or outside

#

And hide hair is only for the outdoors version

drowsy pewter
#

Well did respawning the item fix the original issue?

rocky anchor
#

It did

uncut viper
#

you can change the texture directly probably

tender bloom
#

it is possible that will not work, if the respawning is the issue

drowsy pewter
#

Then yeah you cant

rocky anchor
#

Bummer

tender bloom
#

you can use Lookup anything to verify that the property won't change but Button's advice is probably easier

drowsy pewter
#

So its not that you're using OnLocationChange with EditData, more that you're trying to dynamically change that field

rocky anchor
tender bloom
#

Some fields are set it and it stays, other fields are set it and it's there for life

tiny zealot
#

so what i am learning from this conversation is that HF means Hat Framework and it lets you change this property

tender bloom
#

It's pretty much annoying/impossible to tell without testing

rough lintel
#

offhand, does anyone know if stardew has a sound that's knocking on a door? or know what the sound is when you try and open a locked door?

#

and if its one of the drumkit noises? lmao

tender bloom
#

have you tried doorClose

#

or doorOpen

rough lintel
#

...honestly i-

#

i- ill go listen i apologize

tender bloom
rough lintel
#

are the soundfiles somewhere i dont have unpack them

#

like werent they on soundcloud at one point

tender bloom
#

unpacking is regrettably the thing afaik

#

the songs are up various places

#

the weird sound effects less

rough lintel
#

šŸ˜” aight

rocky anchor
#

So it seems like hats don't refresh their data once they've spawned

rough lintel
#

time to unpack mr soundpack

rocky anchor
#

Hmm

brave fable
#

would once again recommend clubhit, clubsmash, and fishslap in that order

tender bloom
#

the soundback unpacking is legit a huge pain

rough lintel
#

for me? :3c

tender bloom
#

are you on mac or windows, lani?

rough lintel
#

window

lucid iron
#

something i did wonder about is what exact aspect ratio to use for the preview

tender bloom
#

ok it might be easier then

rough lintel
#

ive unpacked it before i just forget where

lucid iron
#

previously i just eyeballed it

calm nebula
#

I would rather work with dangerous acids

#

Please.

tender bloom
#

i think had to compile C

rough lintel
#

unxwb all u gotta do

calm nebula
lucid iron
#

no i meant PIF previews

#

its a texture field where u load a image (usually just ss of the map)

tender bloom
tiny zealot
lucid iron
#

but the aspect ratio is fixed so it looks a lil weird sometimes

rough lintel
#

unpacked ^_^ ill go listen now

rough lintel
rocky anchor
#

As a workaround, can I like... obliterate and automatically replace an equipped hat on location change? šŸ˜‚

#

I just want my hood to go up and down

calm nebula
#

No

tender bloom
#

you can with C#

#

otherwise no

rocky anchor
#

Righto

tender bloom
#

Have you looked into FS?

calm nebula
#

That's also an incredibly hawkish workaround for what you can do with about ten lines od c#

#

Or use fashion sense

tender bloom
#

Fashion Sense I believe can do more stuff dynamically

#

Off the top of my head I don't know about the hair thing

rocky anchor
#

Doesn't matter, I'm not a coder anyway

#

I'll have a squiz at FS, cheers

calm nebula
#

No, lol

#

It would set and unset that specific boolean

#

That is sufficient

drowsy pewter
#

i bet FS will do it

rocky anchor
#

Not sure it's a "No, lol" situation when I don't know how to code C#

#

I appreciate everyone's help with this issue! It explains why I've been having mixed success and hadn't finished troubleshooting

#

I'll reinstall LookupAnything too!

tawny ore
scarlet quarry
#

YES

#

OMG

#

MATT I LOVE U SDVpufferwaaah

tawny ore
scarlet quarry
#

omg

#

you're so nic

drowsy pewter
tawny ore
#

I'm sure this will be buggy because I hacked it together quickly

uncut viper
#

gamepad gamers missing out again SDVpufferpensive

scarlet quarry
thin hamlet
#

Do pickaxes start at level 0 for the starter, or 1?

#

Thanks!

#

I want steel

tawny ore
#

@ivory plume sharing this here since I've hit the file upload limit for GitHub, but I believe this works for both looking up the targeted tile as well as for bringing up search regardless of what Tile Lookups is set to.

#

Ignore my sloppy controller usage, I rarely play with a controller myself

ivory plume
#

Looks like tile lookups aren't triggering in that video (probably because of the custom lookup logic instead of using this.ShowLookup)? With tile lookups enabled, it should almost always show a lookup since it'll fallback to showing info about that map tile position.

#

Essentially I'm wondering if we should just get the player choose between two icons, for this.ShowLookup vs this.TryToggleSearch.

tawny ore
#

Yeah, it can use the method with an id to register two separate icons for each.

#

The only thing is if anyone uses the Toolbar Icon then the cursor will be in a different position from what they want to lookup

ivory plume
#

(I just pushed some changes to the PR; I suggest resetting to the server version before making other changes to avoid a merge commit.)

#

Re the tile lookups earlier, I misunderstood how it was switching between them. I thought you were doing it automatically, not having two different bindings to do it. So that should be fine then.

#

I guess the icon could trigger the no-cursor behavior used on mobile (which gets the subject in front of the player)? If we use that approach, the integration would just be:

// add Iconic Framework integration
IconicFrameworkIntegration iconicFramework = new(this.Helper.ModRegistry, this.Monitor);
if (iconicFramework.IsLoaded)
{
    iconicFramework.AddToolbarIcon(
        "LooseSprites/Cursors",
        new Rectangle(330, 357, 7, 13),
        I18n.Icon_ToggleSearch_Name,
        I18n.Icon_ToggleSearch_Desc,
        onClick: () => this.ShowLookup(assumeNoCursor: true),
        onRightClick: this.TryToggleSearch
    );
}
tawny ore
#

Yeah that seems like it should work

ivory plume
#

I just pushed that change to the PR, if you want to see how well it works in pratice.

unique sigil
gaunt orbit
desert crane
#

Can I change the amount of exp needed to level up skills?

uncut viper
#

not without C#

desert crane
#

Oh thats too bad. Thanks for the info

desert crane
uncut viper
#

correct though you can kind of influence it with crops by adjusting the price

desert crane
#

The less they cost the less exp they give?

uncut viper
#

more or less. theres a formula for it

#

something with the natural log

desert crane
#

Got it. Not worth it this way. I think you level up too fast, and I wanted to slow that down

#

Not the biggest of the issues

#

I will just accept it

uncut viper
#

if you dont mind an already existing mod, someone has made one

brave fable
#

you can just make a simple c# mod with a OneSecondUpdateTicked event that reduces all your skill xp by 1 each time

#

be sure to give it a hip name like Getting Rusty

lucid iron
#

Except loc cooking ofc

uncut viper
#

Use It or Lose It

desert crane
desert crane
brave fable
#

hmmm u can work on the hip name then

desert crane
tender bloom
#

Getting Rusty is for when Atra makes us all learn Rust

brave fable
#

i'm just spouting nonsense

desert crane
lucid iron
#

is there like

#

C# to rust bindings

#

to theoretically make a rust sdv mod

gaunt orbit
#

you'd basically be using rust to write a c lib and then referencing it from c# as external code

#

sounds like a horrible experience though

gentle rose
#

you aren't thinking cursed enough, the real question is if you can write mods with nodejs

gaunt orbit
#

there's gotta be a js engine for c#

shut edge
#

how you all feel about modded animal items having quality? i'm tempted to see if i can make mine just all produce as regular

ebon rapids
#

Are there any current mods that make the chest size bigger?

gentle rose
#

not js, nodejs. I'm going to bring leftpad into stardew whether they like it or not SDVkrobusnaughty

tender bloom
brittle pasture
tender bloom
#

There’s some items I would happily give up quality because they all get processed anyways

shut edge
#

ah does it

gentle rose
tender bloom
#

They know more about what’s out there than we do

#

We just make the mods

shut edge
#

i'll just recommend using auto grabbers and or quality smash mods lol

tender bloom
#

It turns out if you fill the autograbber it reverts to the original harvest method

gentle rose
#

we just make the mods, legally we aren't allowed to play them /lh

gentle rose
tender bloom
#

It reverts to milking/floor spawns/etc

#

If the chest is full

#

I might have too many animals and not check very often….

gaunt orbit
#

it's not like, a framework or something

patent lanceBOT
#

@calm nebula: look (15d ago)

gentle rose
tiny zealot
gentle rose
#

it isn't a compiler, it's a server-side runtime framework

#

(javascript cannot be compiled anyway)

gaunt orbit
gaunt orbit
# gentle rose it isn't a compiler, it's a server-side runtime framework

it's not a framework under any description of the word. There are three components:

  • NPM, the package manager. this is not technically part of nodejs- you can use other package managers with nodejs, and you can use npm with other runtimes/engines
  • The runtime/engine. this is just a javascript engine, like bun, or v8, or rhino, or in this case jint.
  • The transpiler (if you want to be pedantic) that packages all of your files and runs postprocessing scripts. You're partially right, in that for vanilla JS it's not technically compilation, since JS is an interpreted language, but it is a build step, and it actually does compile typescript if you're using that. (though this is also part of NPM and not nodejs itself)
#

the part you're referring to as serverside is the runtime, which just runs the raw js you get after the build step

gentle rose
#

a) by server side I mean it was designed to be run serverside and not clientside, b) I was making a silly leftpad joke haha

#

not really worth thinking too deep into

#

(also I also have a fair amount of experience using nodejs, hence the leftpad joke being my first go-to)

tiny zealot
#

are we talking about what counts as a compiler /lh

gaunt orbit
#

hmmmm

tender bloom
#

I think I’m an input purist

gentle rose
#

I agree with bopit

tender bloom
#

But output agnostic

#

I’m not sure what a bopit is

brave fable
#

discord gif search is a compiler šŸ™

gaunt orbit
#

the real question is, is there a definition of a compiler that excludes gcc

gentle rose
#

add a usage axis: usage-not-depressing

#

gcc gives me flashbacks to ghc and ghc makes me sad

gaunt orbit
#

ah, I remember the time I tried to compile aseprite from source

#

not fondly, but I do remember

rigid oriole
gentle rose
#

Glasgow Haskell Compiler

gaunt orbit
rigid oriole
#

no i know what gcc is

#

never heard of ghc tho

gaunt orbit
#

oh wait I misread mb

rigid oriole
#

no worries

gaunt orbit
#

I've never heard of ghc either

gentle rose
#

it's a haskell compiler and haskell is a lot of fun in theory and a lot less fun in practice when debugging

#

ooo, haskell mods šŸ‘€

tiny zealot
#

glasgow haskell compiler was, last i checked (some time ago), the only real haskell implementation you could use, and getting it to work on a computer is a thing i still don't believe is possible

gaunt orbit
gentle rose
#

I can confirm it is possible

#

though possibly not on windows

gaunt orbit
#

actually functional programming would probably be nice for writing transpilers

#

it's very data-in-data-out

gentle rose
#

aren't transpilers pretty imperative? (gen question, never used them)

brave fable
#

i'd describe them as dysfunctional, personally

gaunt orbit
gentle rose
#

technically, having impact on a program is a Side Effect and therefore not functional (other things that are technically not functional are rendering anything to a screen, having output and existing on a computer)

shut edge
#

welp my animal produce is getting too complicated to think through immediately, time to make a damn graphic lol

gaunt orbit
gentle rose
#

sorry, I was typing that before I saw your message

gaunt orbit
#

all good

gentle rose
#

(also, fr, my functional programming course at uni started with a disclaimer about how no programming language is truly functional because if you can see the output, that is a side effect SBVLmaoDog )

gentle rose
#

and 1% tears

gaunt orbit
#

that does seem to be a common strength of FP

#

hmmm technically json modding is declarative programming

#

at least with cp

gentle rose
shut edge
#

man i'm gonna need to make an inbetween stage aren't i

#

guess i can just make it the woolly stage with like...less

brave fable
#

you may need to make the baby smaller than an adult to avoid confusion SDVdemetriums

shut edge
#

baby stage i'm not so worried about i think

#

i might even disable it entirely

#

all the stuff in this mod is non-reproducing

gentle rose
#

I'm confused about the milk ready vs milked ones and the tusk ready vs dropped ones

shut edge
#

yeah that's the problem lol

#

this is what it's doing now

#

i should make new graphics for each

#

effort...

brittle pasture
#

arent tusks dropped overnight

shut edge
#

yeah

#

it still goes into the woolly stage when it's doing that for the day tho

#

maybe i set it up wrong

brave fable
#

shocked at how much hair this thing lost while u were milking it

gentle rose
#

how are you milking it? a_sideeye /lh

brittle pasture
#

so the default Texture in animal data is actually the "has produce" sprite

#

HarvestedTexture is the "no produce" sprite

shut edge
#

"Texture": "{{ModId}}/assets/mammothbrown",
"BabyTexture": "{{ModId}}/assets/mammothbrownsheared",
"HarvestedTexture": "{{ModId}}/assets/mammothbrownsheared",

#

is the current setup

brittle pasture
#

hmm looks good to me

shut edge
#

then the extra produce

#

"(O){{ModId}}_mammothwool": { "HarvestTool": "Shears", "ProduceTexture": "{{ModId}}/assets/mammothbrown", }, "(O){{ModId}}_mammothmilk": { "HarvestTool": "Milk Pail", "ProduceTexture": "{{ModId}}/assets/mammothbrown", }, "(O){{ModId}}_tusk": { "HarvestTool": "Debris", "ProduceTexture": "{{ModId}}/assets/mammothbrown", },

brittle pasture
#

hmm that also looks good

brave fable
#

wouldn't you need a permutation for each of milked/shorn/tusked

brittle pasture
#

though you dont need producetexture for tusks since it's already dropped prior

shut edge
#

seems like i need a between state for the default texture or somethin

brittle pasture
#

you only need 3 sprites - has milk, has wool and no produce

brave fable
#

or are you just going to feed this thing dynamite and have it drop milk, hair, and teeth all at once

shut edge
#

blueberry, it can also be turned to meat!

brave fable
#

dynamite it is then

shut edge
#

but that's simple

#

sheared seems like it's....well, for when it's sheared

#

i guess it should be returning to default tho

#

i'll try and make a woolly but not as woolly state tonight

brittle pasture
#
  • animal husbandry
shut edge
#

this is my items block

#

for like...5? animals now

brave fable
#

very prehistoric. i like fred flintstone's coat and undies in the bottom right

shut edge
#

maybe 6, the pterodon items are there but it doesn't exist yet

calm nebula
#

Atra of fifteen days ago wanted me to look at something

#

Unfortunately

#

Atra of today wants to sleep

shut edge
#

Selph, i could send you my current form of the mod if you wanna mess around with it give feedback. if you have time and are interested in doing so.

calm nebula
#

Hope that wasn't important SDVpufferthumbsup

shut edge
#

havne't done recipies yet

brittle pasture
#

I'd love to but I'm on holiday rn though and with no access to a pc
feel free to keep posting links to smapi's json site though

shut edge
#

ok

#

here it is at the moment

#

i'll go back to the pixel mines

brittle pasture
#

yeah everything looks fine so far. feel free to tag me if you find any issues with EAC

shut edge
#

it just like...feels weird in gameplay in ways i can't quite explain

#

like i dunno, is it possible for one produce to stick there until harvested, or multiples even?

#

i told it to do wool on even days and milk on odd, but if your friendship is low it'll have wool on the even day and then revert to shorn on odd days with the wool gone

brittle pasture
#

IIRC a produce will remain if it's not harvested?
multiple simultaneous produce will need finangling with the "extra produce" feature of EAC

#

ah okay I reread your post, yeah if milk is triggered it will yeet the wool

#

but if not then the wool should stay

shut edge
#

i guess i should probably just set sheared to the default state then

#

and come up with something for milk

#

just looks better with the wool lol

#

keeping several unshorn mammoths around for looks

#

i suppose regular stardew cows don't change appearance when they have milk

brittle pasture
#

I was about to suggest "sheared but with enlarged udders"

#

ngl that would be useful for vanilla goats, where they're only milkable every other day

#

and I'll be damned if I remember whether I milked them yesterday (without ui info)

shut edge
#

haha yeah, UI info has been my only lifeline during dev here

#

so if they are in the state of "wearing" their debris item texture, it has already dropped?

#

prob could make a texture with part of the tusk broke off easy enough

brittle pasture
#

with debris they'll use the harvested texture

#

because it has already been dropped yesterday

shut edge
#

it has it's own field for texture per item tho right? i assumed you could use that to make extra states

brittle pasture
inner harbor
#

if I specify a Winter Star gift option with spouse, will that 100% guarnatee they give that gift if they're your gift giver?

brittle pasture
#

I should clarify, that field is only for animals waiting to be milked or sheared

inner harbor
#

(I am wondering if I can reference it specifically)

shut edge
#

ahh

brittle pasture
#

for drop/debris it will do nothing

shut edge
#

i'm trying to do things that aren't real then lol

brittle pasture
#

yeah, though I understand why you'd think that (I should improve the docs lol)

shut edge
#

alternatively, new feature!

#

lol

#

yeah the docs were helpful but also midly confusing

#

like three diff produce models that have different options each... took me a bit

#

that is probably somewhat inevitable in this field tho

#

well using sheared as everything except "has wool" seems to be less confusing, at least

brittle pasture
#

@inner harbor pinging just in case (realized it's been 5 min and several messages lol)

shut edge
inner harbor
#

thank you!

brittle pasture
shut edge
#

but yeah if my complex shenannigans inspire anything feel free to run with it lol

inner harbor
#
                            "Id": "Jasper Diamond",
                            "ItemId": "(O)72",
                            "MinStack": 5,
                            "Condition": "PLAYER_NPC_RELATIONSHIP Current Jasper Married"
                        },``` Jasper showers you in diamods
shut edge
#

now on to the mystery of why my custom items show up as diamonds and stuff when used as animal husbandry treats

brittle pasture
#

yeah that should work
if the item query condition isnt eligible or resolves to nothing the game falls back to the age-dependent generic gifts

inner harbor
#

there's also heart determined ones

shut edge
#

hmm i should prob set the tusk to a deluxe produce

oblique meadow
#

Potentially dumb question. I know spacecore can spawn a farm building on a new farm. Is there a way to spawn a building on an existing farm with a specific trigger? Like Do X and i'll put a barn at XY coordinates

inner harbor
#

Just setting a few specific ones for my NPCs

pale summit
#

could one of you be an angel and dm me the function for Random.chooseFrom(Queue) i'm unable to find it in my copy and my mod is having an error where that is returning null from a non-empty set

shut edge
#

also occurs to me that my files are mammothsheared when it should maybe be shorn

gaunt orbit
#

Google "c# extension methods" for more information about how they work

brittle pasture
#

the description doesnt mention it but adding buildings with triggers is in the docs (EDIT: well technically not, but you can do conditional When edits on the asset and it should apply the next day)

oblique meadow
#

Im worried about releasing a farm map needing so many dependencies haha

brittle pasture
#

well if you want SpaceCore only I guess you can do something like spawn the buildings at the start but block off the area

lucid iron
#

well u want to use the farm map urself right

brittle pasture
#

though that wouldnt stop you from adding animals to a blocked off barn/coop

pale summit
oblique meadow
shut edge
#

now the controversial question: should i have my dinos drop feathers

lucid iron
#

then it should be ez to pick right amount of dependency

shut edge
#

for the record their textures are non feathered

#

but i might just drop em anyway

uncut viper
#

my answer is still yes

shut edge
#

sounds good

lucid iron
#

they drop fossilized feathers

shut edge
#

do we know if like all of them did feathers or just some?

#

raptors and Parasaurolophus makes sense....triceratops i dunno

uncut viper
#

well, i dont really know anything

shut edge
#

looks like no one does

#

well the closer to bird ones can get em

hollow hazel
#

almost al raptors had feathers, the most a parasaur would have would be quills, not much (if any) evidence of paras having feathers

shut edge
#

you prob know more than me, so sure

gentle rose
pale summit
#
            {
                if (keysIncludingCompleted.Count == 0)
                {
                    break;
                }

                keyQueue = new List<string>(keysIncludingCompleted);
            }

            string key = r.ChooseFrom(keyQueue);```
#

key is ending up null somehow

hollow hazel
#

if you need help with the accuracy side of the paleo stuff feel free to ping me, im not a palentologist but i keep up with the most accurate takes to the best of my abbilities

shut edge
#

i could use a sanity check sure

gentle rose
#

what's the type of keysIncludingCompleted?

lucid iron
#

what are you trying to do here

shut edge
#

i've got....mammoths making milk, wool, tusks. raptors making talons, skin, feathers, and digging up eggs. triceratops making horns, skin, teeth, and eggs. parasaur is doing horn, skin, teeth and life elixirs which is a thing don't worry about it lol. smilodons doing fur and fangs.

gentle rose
pale summit
#

yes but it's just a for loop to do this twice

shut edge
#

also some meats across those

gentle rose
#

why are you using a for loop to do something twice? I'm confused

hollow hazel
#

would the eggs be put in an ostrich incubator to get more raptors?

shut edge
#

i've got it set up as inert eggs and no pregnancy

pale summit
shut edge
#

mostly because lazy but also it can double as a sideways reference to jurassic park i guess

brave fable
shut edge
#

lol yea

gentle rose
#

why didn't you wrap it in a method and call that method twice...

shut edge
#

all females too!

gentle rose
#

anyway, your break breaks you out of the entire for loop, so what happens if key is never set?

shut edge
#

maybe i could have done like male and female animals giving diff stuff but again, effort

hollow hazel
pale summit
brittle pasture
shut edge
#

could always add in super rare proper egg drop and all that but maybe in the futre

gentle rose
#

ngl it's nearly impossible to help debug when we only have this small section of the function, which itself is running inside a loop

hollow hazel
#

all of those seem like great harvestables, but you many want the shift it from straight up Horn harvestables to Horn shavings/chippings as the horns of those dinos was living bone

pale summit
#

ahh wait i missed a crucial line when i was copying. still inside the loop

            {
                if (keysIncludingCompleted.Count == 0)
                {
                    break;
                }

                keyQueue = new List<string>(keysIncludingCompleted);
            }

            string key = r.ChooseFrom(keyQueue);
            
            SpecialOrder order = SpecialOrder.GetSpecialOrder(key, r.Next());

the error is occuring because the key in GetSpecialOrder is null

uncut viper
#

(also it kind of seems like the bug is that it isnt really failing gracefully?)

shut edge
#

i figure i can get away with horns since stardew has rabbit feet

gentle rose
#

that makes more sense

shut edge
#

lol

hollow hazel
#

true

pale summit
shut edge
#

thanks for the feedback

hollow hazel
#

all im thinking is a hornless triceratops alt like the shaved sheep lmao

shut edge
#

i uhhh could do that

#

since the sprite i adapted only had two horns to start with

#

some skin variants still do too

#

that seems....morally dubious tho

hollow hazel
#

ohh shedding nose horn could work

shut edge
#

yeah?

#

i'm imagining most of these parts as being shedded or lost fighting etc

hollow hazel
#

yeah like antler type shedding

shut edge
#

yeah i've got it to do debris skin and teeth, drop overnight horn and egg

hollow hazel
#

"this variety of triceratops has a unique nose horn that sheds regularly, a great source of keratin/ivory for ranchers"

shut edge
#

i've got some stuff in the store desc saying these are like miniature and domesticated on some haha

hollow hazel
#

Skin skin or scales skin? you may need the specify if you don't want the human flesh dino to come to mind

shut edge
#

scales

#

6th item

hollow hazel
#

Ah mini dino petting zoo is gonna be someones goal

shut edge
#

it says skin but looks like scales hopefully enough?

hollow hazel
#

You may wanna up the saturation, looks a bit closer to elephant/rhino skin the me

shut edge
#

i could, sure. i made it sort of a between color since the dinos themselves come in several

hollow hazel
#

Thank wil prob work

gentle rose
shut edge
#

how's that?

pale summit
ocean sailBOT
#

Log Info: SMAPI 4.1.10 with SDV 1.6.15 build 24356 on Microsoft Windows 10 ä¼äøšē‰ˆ LTSC, with 210 C# mods and 104 content packs.

hollow hazel
#

Better! now im thinking of alligator skin instead

shut edge
#

tbh i was unsure how to sprite a patch of dino skin

#

also the blueish wool is meant to be pycnofibers

hollow hazel
#

id say thats the best way the show it if you aren't being specific

#

do you intend to have pterosaurs? i thought pycnofibers were lumped into the feather grouping

shut edge
#

i do, yeah

#

prob a future update but it's in the queue

hollow hazel
#

Ah great idea to say pycnofibers then the make to clearer as a pterosaur item

shut edge
#

always a struggle to decide how deep into minutae you wanna get

#

but i learned pycnofibers were a thing while making this so i figured yeah sure

hollow hazel
#

oh for the sabertoothes, you won't need to edit the sprites since they have 2 pairs at any time

gentle rose
# pale summit not me but someone using the mod. it's an error i haven't seen https://smapi.io/...

I'm pretty sure the key that's null is the one being referred to in System.Collections.Generic.Dictionary2.FindValue, not GetSpecialOrder

ArgumentNullException: Value cannot be null. (Parameter 'key')
   at System.Collections.Generic.Dictionary`2.FindValue(TKey key)
   at StardewValley.SpecialOrders.SpecialOrder.GetSpecialOrder(String key, Nullable`1 generation_seed) in D:\GitlabRunner\builds\Gq5qA5P4\0\ConcernedApe\stardewvalley\Farmer\Farmer\SpecialOrders\SpecialOrder.cs:line 591

the TKey key one is the one that's null

#

which is apparently on line 591ish of SpecialOrder.cs

shut edge
#

do you think the fur is better as a shear or dropped item?

#

do big cats have big hairballs?

gentle rose
#

question is what's causing that, which I have no clue

hollow hazel
#

dropped, large animals tend the shed

shut edge
#

works for me, that's easy

hollow hazel
#

if to want shearing its been discovered that atleasy one species had a large chin/ beard that could be sherable

shut edge
#

i'd like to give them tiger stripes but that seems beyond me

ivory plume
#

@tawny ore Is the Iconic integration PR ready to merge, or did you still want to test/change something?

hollow hazel
#

you could have the stripes on the legs? most likely coloring aside from leg spots

pale summit
shut edge
#

for the pteranodon my notes say they don't have teeth, so the fibers and meat. dunno what else they could make

pale summit
#

let me add some more logging and see if we can get it to retrip

#

thanks for your help

shut edge
#

talons maybe

gentle rose
hollow hazel
#

teeth were very early pteros, so unless you want to make a ramphoryncus or dimetrodon

pale summit
#

why would that break in multiplayer

gentle rose
#

honestly just a guess tbh

#

some searching implied that problem is often caused by issues relating to things like threading, idk if stardew is multithreaded or not but I figured checking multiplayer would be a good shout too

tawny ore
#

Do you know about when these changes would be released? Just wondering when I need to push out my api update.

hollow hazel
# shut edge talons maybe

sorry blue screened, you could always add both shed teeth and claws? make them a substitute for bone in recipes? anyway im off for the night, need to check to make sure all my files are good

oblique meadow
#

Ok. Followup question for anyone who has used Buildings Included. Im sure it's a small mistake...but I complete a bundle and the first stage replaces what im removing, but I can't get the new one to build. I followed the github but its a bit sparse. What am I missing?

    // Farm Rebuild
    // Grandpa's Well
    {
      "Action": "EditMap",
      "Target": "Maps/{{ModId}}_RusticRidge",
      "FromFile": "assets/RRPatch.tmx",
      "FromArea": { "X": 43, "Y": 17,  "Width": 6, "Height": 5},
      "ToArea": { "X": 43, "Y": 17, "Width": 6, "Height": 5},
      "EditMapMode": "Replace",
      "When": {
        "DLX.Bundles/Purchased": "RR_FixWell"
      }
    },
    {
            "Action": "EditData",
            "Target": "MindMeltMax.MapBuildings/Buildings",
            "When": {
                "DLX.Bundles/Purchased": "RR_FixWell",
            },
        
            "Entries": {
                "{{ModId}}_RusticRidge": [
                    {
                        "Location": "Maps/{{ModId}}_RusticRidge",
                        "X": 43,
                        "Y": 17,
                        "Building": "Well"
                    }
                    ],

            },
    },```
ivory plume
shut edge
#

i feel like most of my item desc fields are like "some words, and some more words"

light bramble
#

Random question, (or maybe not) but I have downloaded compat files that add retextures for other mods (with the mod creator's permission obviously) and instead of manually overriding the textures, is there a way to use CP to do it for me in the form of a mod? Specivically I am talking about the Mod Compatibility Textures for Elle's Seasonal Buildings and the SVE trees for DaisyNiko's Earthy Recolour.

#

Like could I make a (only for me) mod to just do the conversions?

desert crane
#

I forgot to add the remove current tool when you upgrade. What should I add in here: ?

#

{
"Action": "EditData",
"Target": "Data/Tools",
"TargetField": [ "CopperAxe" ],
"Entries": {
"ConventionalUpgradeFrom": null,
"UpgradeFrom": [
{
"Condition": "PLAYER_HAS_ITEM Current (T)Axe",
"Price": 2500,
"TradeItemId": "(O)334",
"TradeItemAmount": 10
}
]
}
},

shut edge
#

is there a way to do quote marks in an item desc?

rigid oriole
#

escape chars should work right?

#

like \"

shut edge
#

maybe

#

i can work around it anyway, no prob

rigid oriole
#

Kinda fun how the compiler will see a bunch of return statements all over a method and instead of allowing them each to have their own ret instruction, they instead unconditionally jump to the very end and all share the same ret operation

IL_0343: Label30
IL_0343: Label31
IL_0343: Label32
IL_0343: Label33
IL_0343: Label34
IL_0343: Label35
IL_0343: Label36
IL_0343: Label37
IL_0343: Label38
IL_0343: ret
DONE
#

It might be harmony doing it, since it doesn't show in the ILSpy decompile for me

mighty ginkgo
oblique meadow
mighty ginkgo
#

anything on the log?

#

!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.

brittle pasture
#

it has a building gated behind an event

oblique meadow
#

omg. Ive been hunting for one that uses it. THANK YOU. I will happily tear it apart

uncut viper
#

you can look in the requirements tab of a framework to see mods that use it

oblique meadow
#

well...i did not know that

#

I will keep that in mind. Thank you šŸ™‚

shut edge
#

yeah it's super useful

oblique meadow
#

OK! I got it

#

I was overthinking the hell out of it

reef jewel
#

Hi!!! Does anyone know any good youtube channels on how to get into creating mods? šŸ˜… extremely new to it but i just did a coding course and figured this would be a good way to put it to use LMAO

oblique meadow
shut edge
#

also this channel once you get rollin

desert crane
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.

faint ingot
#

Just completed my first major content update for my mod. Pierre has company in the cell now!

reef jewel
velvet narwhal
#

would incentivize what you want to create first: because 85% of the time you can get away with a .json (content patcher)
if you'd like to change the inherent game behavior, that's c# territory

light bramble
#

Hey Pathos, I was looking at your code for the tractor mod, is it correct to assume the file path for the assets of the building for the tractor garage is under Data/Buildings?

#

Only asking because I wanna test something silly out.

frail moss
shut edge
#

"Name": "Joja Cola", "DisplayName": "[LocalizedText Strings\\Objects:JojaCola_Name]", "Description": "[LocalizedText Strings\\Objects:JojaCola_Description]", "Type": "Fish",

#

i get why, but lol anyway

light bramble
#

I mean it's also Trash...

frail moss
brittle pasture
light bramble
#

Cuz PublicAssetBasePath is Mods/Pathoschild.TractorMod

#

Also does anyone else get a weird bug where the text they highlight just...stops being highlighted when you let go of the mouse click?

brittle pasture
light bramble
#

What broke?!

brittle pasture
#

(not that they're needed. just remove them both from the i18n file and the {{i18n: }} entries)

shut edge
#

anyone know a way to make a consumable item that gives a buff but like....not as food or drink?

#

like just use it and it happens

#

totems kind of work like that but i imagine those have hardcoded stuff going on

uncut viper
#

spacecore

#

iirc

shut edge
#

i'll take a look, thanks

#

at least i got my buffs workin

#

although it seems odd that it can be done via the buffs on the item and i guess also in the buffs file

#

guess food buffs are just different things?

hallow prism
#

it's in the text that they will not

#

technically you CAN port them, but in this case it's unecessary and more tedious work than changing the names

shut edge
#

how about buff durations, can i calculate those somewhere

#

ah milliseconds so just remove three zeroes?

#

or apparently just set it to 500 and get roughly 5 minutes, ok lol

shut edge
#

does immunity not show up in the hover info for a buff?

#

the buff is there, the glow is there, but i don't know that i'm immune...

#

magma sparker doesn't seem to be burning me so maybe it's workin

reef kiln
#

How do you tell tiled to use a vanilla tile sheet. To get it to have graphics i have been placing copies of the png i unpacked in my mods asset folder. But other mods don't do this so I know there is a way to tell it to use vanilla stuff.

hallow prism
#

it's done automatically if the asset name is the vanilla one andthe path is direct

#

smapi/cp will search in content first for maps assets

reef kiln
#

So when building the map in tiled I do need a copy of the png in the asset folder, but when I finish making the map and move it to the mods folder I can just delete the png and it should automatically work? Just want to make sure I understand

finite ginkgo
#

correct

next quarry
spice inlet
#

I'd imagine you kind of prevent another mod with the same message type from throwing an error trying to parse your message. It's good hygiene

next quarry
#

hmm yeah, I'll just keep it limited. You're right

unborn coral
#

Hi everyone!
someone can help me? i wanna develop a mod to modify the start screen UI
the feature would be something like "add zoom adjustment buttons" to fix overlapping in the main menu.
I just need someone to point me in the right direction, something like ā€˜you’ll need this mod and this tool.’ I’ll figure out the rest… hopefully šŸ˜…

shut edge
#

earlier this mod i'm working on was like three-ish tweaks from being maybe ready to release

#

now that i've done those, it's only five-ish tweaks away!

coarse lava
#

We haven't changed the ad slots in a while, but we are in the process of removing those left and right ads because we agree. There are too many.

gentle rain
#

Excuse me I was wondering if I could find some help please. I was looking at aedenthorn's Light Mod ( https://www.nexusmods.com/stardewvalley/mods/14387) which seems to break in version 1.6, I don't know the first thing about coding and have never done anything like this before but I was wondering if anyone could point me to the right direction to help fix it (I downloaded the sourcecode from github and from looking at the guide for migration to 1.6 it doesn't seem like it was migrated???? I... Think.... I'm not sure, I'm just going off from what I can read from the csproject file with a text editor). I'm not sure if this is sth one should attempt with zero coding knowledge but idk what else to do. Is it terribly difficult to attempt to do it all on my own?

tiny zealot
#

if you've never programmed before, you are likely to get very frustrated trying to update an old mod. in particular, you'd need to be able to decipher what is broken and work out how to fix it, which depending on the mod may range from minor edits to a complete rewrite