#making-mods-general

1 messages · Page 197 of 1

gentle rose
#

I'm sure some people doing commissions are willing to arrange non-paypal payment methods. There's a list in the commissions page, but if you'd rather do it this way, it might help to put your budget for the commission and the scope in your message.

#

!commissions

ocean sailBOT
hallow prism
#

(and there's DP on nexus that some people may see as an acceptable payment)

vernal crest
#

Okay, confirmed that Lily's mod also works just fine in my game when using a different file name to NPC internal name.

#

So it seems like there is some common failure in game/CP/SMAPI/??? for Lily and Aeywoo

rigid musk
#

It also now works fine for me.. so there's that

#

Depending on what it is I may be able to help

#

I should probably figure out how to add myself to the commissions thing pondering

#

though ive never done commissions for code or pixel art... i wouldnt know how to price those

hallow prism
#

a good minimum is your hourly wage

naive wyvern
#

best way to know how to price is to see how your peers price their stuff to get a feel for whats average in the community

#

hourly wage is also really good

rigid musk
#

im officially done testing all of Qi's events for vanilla im so happy Blushcat

hallow prism
#

you can go higher, but try to not go lower

rigid musk
#

I don't.. have an hourly wage

#

I'm disabled so I don't/can't work :L

#

which is why I'm around here so much oooo I haunt everyone ooo

vernal crest
#

Then looking at the other comms on the comms page of the wiki is a good starting point

rigid musk
#

(at least not the work most people do anyways)

hallow prism
#

i mean, your country likely has one minimal one

rigid musk
#

Ah yeahhh

#

That's not very high, id definitely probably charge more than that

#

s'pecially if im gonna put my time into somethin

#

I know I charge above that for my basic art commissions so ill definitely try doing some price comparisons, maybe I can set up something on my ko-fi - thank you guys :3

vernal crest
#

Yeah I would definitely charge more than minimum wage for artistic work

#

Hmm, I just permanently deleted what I thought were empty folders but there was a file size so now I am afraid I deleted something I wasn't supposed to...

gentle rose
#

btw, by hourly wage we mean per new hour of work on the commission obviously, not your hourly wage for an entire asset

unique sigil
hallow prism
#

yeah! and it's a starting point for people that have trouble pricing their work, especially when they have difficulty accepting their work is worth that much

rigid musk
unique sigil
#

my country has weakass currency so i understand the feeling of having trouble pricing things :)

#

im just starting so i did set my prices on the mid-to-low end

gentle rose
#

and feel free to send your tentative prices here and we'll tell you if they need to be changed SDVpufferheart

flat sluice
#

Hi,
yesterday, I asked if it is possible to use Dynamic Tokens in i18n dialogues. The answer was yes. So I tried it, but it looks like I did something wrong, as I can't trigger these dialogues. Could someone help me with what I did wrong?
All files that should be needed are below X ask if you need more:
log file: https://smapi.io/log/946e05165cf548b288f827ee76ec1387
content.json: https://smapi.io/json/content-patcher/17445f85079c42e3aa1399f800cde7e1
dialogues.json: https://smapi.io/json/content-patcher/c4576ce8270c481e8efcf3a65e75739c
default.json (i18n file): https://smapi.io/json/i18n/7a34f3e3b47a4f15ba819b5d58e7e11e

BTW, is everything okay with the wiki? It loaded unexpectedly for me, including a picture of it (https://stardewvalleywiki.com/Modding:Console_commands#db), so is it only on my end? Other pages are OK.

Stardew Valley Wiki

←Index

ocean sailBOT
#

Log Info: SMAPI 4.1.10 with SDV 1.6.15 build 24356 on Microsoft Windows 10 Pro, with 69 C# mods and 50 content packs.
Suggested fixes: One or more mods are out of date, consider updating them

gentle rose
#

the wiki does sometimes have issues with the theme, if they're there consistently it may be worth letting margot know on her talk page ig?

flat sluice
acoustic bison
#

Hi, I am would like help please on modding?

hallow prism
#

what is the db command?

acoustic bison
#

? i uh i mean like id like to put anoither npc in and i dont know how,

gentle rose
hallow prism
acoustic bison
#

i figured lol

#

sorry

hallow prism
#

what is your issue and are you making the mod?

gentle rose
#

have you ever made a stardew mod before?

acoustic bison
#

nope i havent, but id like to try leaarning

#

i wanted to add my boyfriend into the game

gentle rose
#

that's good! there's some guides that could help you in the wiki and the modding wiki

#

...I forgot what the commands are to get them

acoustic bison
#

thats fine, thank you so much

#

ill look there

gentle rose
#

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

gentle rose
#

there we go

acoustic bison
#

oop

hallow prism
#

once the save is loaded?

#

then give us the resulting file (that will be in stardew valley/patch export)

#

!json to share it

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.

tribal ore
#

I'd like to send a letter a certain number of days after an event has happened. The only way I know how to time things with trigger actions right now is with conversation topics (set a conversation topic for 3 days and then check to see if it has expired). Is there a better way?

hallow prism
#

The event has a natural ct, but basically same concept

#

The natural one lasts 4 days i think, so it may not works for your use case

tribal ore
#

You mean the _memory_oneday etc topics?

hallow prism
#

Eventseen_eventid no memory key but i need to check format when on computer

#

There is one that just omit the memory_ part

tribal ore
#

Ok, I'll do a little googling as well just in case I can find it faster. 4 days is approximatey right, though it would be nice to control it with a little more finesse

hallow prism
#

example in abi dialogue you can see an eventSeen_3

calm nebula
#

does anyone remember if letters respect ${male|female|nb}$?

#

or the right syntax, I can't recall

#

automated mail checking:

not pictured: maru's face after the automated mail checker dumps a pile of items on the floor

rigid musk
#

🥹 I did it, my mod is ready to be beta tested...

#

Now what will I hyperfixate on shock

wanton pebble
#

fixing all the bugs that get reported for it

#

And that happens for any mod. You always think you're done and you've got it.... and then you start running into bugs the way this GIF goes XD

rigid musk
#

Mmm.. bugs..
I know I'm not completely done but the bulk of the work is which is what I'm referencing when I mention the hyperfixation thing heehoo

#

(i also know there's bound to be bugs because I:
A: Did not actually fully test the preconditions for my events
B: Did not even remotely test the special orders, i just loaded the game and waited until i didnt get any red
C: It's modding, there's gonna be bugs)

calm nebula
#

maru unimpressed at the pile of shit on the floor

rigid musk
#

PFF

#

I thought those were all IN the fishtank I was very confused

tribal ore
flat sluice
#

````This is applied before most other commands or parsing, so it can safely be used in cases where ^ might have a different meaning (e.g. mail text). You can also use ¦ instead of ^, in which case any ^ characters are left as-is. ```

flat sluice
#

In fact, these are only vanilla. So looks like the whole file is not loading properly...SDVpufferwaaah Not sure why...

#

There should be like 100 there...

#

Wait! I forgot to delete the old DT token in some of them.

hallow prism
#

hu, are the give_flowersB and such vanilla keys?

#

and i see some of your include and load have conditions so maybe something is missing

flat sluice
hallow prism
#

i think this may be from amod

#

like one of the unique answer whatever series

calm nebula
#

New version of EventsTester now has a command (sinz.check_mail <optional filter>) to check over all the mail entries as well

Nexus Mods :: Stardew Valley

An automated way to run events in the game. Now with fast forward and chat commands.Basically, 1.6 has made event parsing much, much stricter. And there's no good way to test if your event

flat sluice
fathom hound
#

Wonder if I can make a CP mod that involves co-parenting??? Would involve changing NPC pathing & schedules.. should be CP-only, right??? SDVpetcatsad

tribal ore
#

NPC is invisible yet still shows up at festivals?

flat sluice
calm nebula
#

invisible npcs do show up at festivals yeah

#

it's a thing

flat sluice
#

Move it to -1000 -1000 then I guess?

hallow prism
#

hmm

tribal ore
hallow prism
#

importing tokens in dialogues should work

#

but without more details it's hard knowing what's going on

honest hamlet
#

I wish there was something like "Reset this floor level" option when interacting with the ladder on the mines, so it makes farming for ores easier

#

Wonder if it's even possible to do something like this

#

AFAIK in multiplayer, you have to wait 10 ingame minutes for the mines to reset everytime you go up the ladder

tribal ore
#

Is there a way to change an actor's position during a festival after normal setup is called? Or am I going to have to have two setup entries and load the correct one based on a flag?

tiny zealot
flat sluice
hallow prism
#

i am quite busy with testing for my own mod right now, i don't really have suggestions right now

tiny zealot
tribal ore
#

When NPC is invisible, don't have him show up at festivals

#

Apparently not default behavior

#

I'll go ahead and create two setup entries I guess

tiny zealot
#

hmm hang on

#

are you talking about set-up or Set-Up_additionalCharacters?

flat sluice
wanton pebble
#

setup = bad, don't fuck with unless you're changing vanilla stuff
setup additional characters = good, meant for placing your stuff

tiny zealot
#

Set-Up_additionalCharacters is the one that adds them to the map.
set-up is a string of event commands that runs after everyone is added (to do walk cycles with advancedMove and the like)

wanton pebble
#

Technically it's-

#

yeah ichor's got the right of it - was about to elaborate on the second part

#

(all them advancedMoves being in set-up, that is)

tiny zealot
#

you can patch in a warp for your NPC off into the void if the mail flag says he should not be around. i expect that would work

#

(you want to use TextOperations for this. for example, for spring24:)

        {
          "Operation": "Append",
          "Target": ["Fields", "set-up", 5],
          "Value": "/advancedMove {{Lacey}} true 3 4400 0 -1 -1 0 2 5200 1 0 0 1"
        },```
#

that one is a walk cycle but if you punt your NPC off to -1000 -1000 or something i expect you won't see them

granite bluff
#

hey ho : ) how does the monster extermination board in the advernture guild work? since i changed some map tiles it cant be toggled anymore ingame, but i cant find the issue in tiled

royal stump
#

the board is a hard-coded action on Buildings tile index 1306, specifically

reef kiln
tribal ore
tribal ore
iron ridge
tribal ore
brittle ledge
#

It's basically the fifth section of the event.

#

(Festivals are just fancy events)

wanton pebble
#

Context: Pathos fixed it so that the last entry for a character is where they'll end up

#

So if you have Sandy 10 4 and later on Sandy 15 27, the game will only spawn Sandy 15 27

tribal ore
#

Where is the documentation for setup additional?

wanton pebble
#

Honestly? IDK because I learned my setup additionals by diving into other mods and looking at their examples SweatSmileIan

#

I'm sure it's.... somewhere

brittle ledge
tribal ore
#

xD lol!!

wanton pebble
#

thanks tia! SDVpufferheart

tribal ore
#

But setup additional will work for vanilla characters too?

wanton pebble
#

It should

reef kiln
wanton pebble
#

at worst, test for exactly one NPC

tribal ore
#

Ok. I'll give it a try!

#

Thank you guys

wanton pebble
#

No probs.

iron ridge
#

also running py -m pip install requirements.txt from the downloaded folder

brittle ledge
#

hey Pillow, are all your converters linked in one place?

wanton pebble
#

aren't most of pillow's converters in the !converters command?

#

Or is that one old presently

iron ridge
#

theyre all in !converters yes

granite bluff
#

holy moly i found it, its empty xD thank you alot!

reef kiln
iron ridge
#

oh oops
py -m pip install -r requirements.txt

reef kiln
#

that worked

reef kiln
brittle ledge
iron ridge
#

try just run both

py -m pip install Pillow
py -m pip install pyjson5
#

i can see all 10 of the mods

brittle ledge
#

I turned all the NSFW tags off the other day and Nexus seems to think that I meant the opposite of what I did

iron ridge
#

and the mod pages work too for all

brittle ledge
wanton pebble
#

Immersive Saloon is adult

iron ridge
#

oh

wanton pebble
#

it says when you go to tia's stuff with NSFW turned on, I presume

brittle ledge
#

Anyone know who I could yell at about this?

reef kiln
iron ridge
#

yes

flat sluice
# flat sluice Yeah, I know. Do you need from me to send/test/... something?

So...
I indeed did something wrong with my Dynamic Token...
LOG: https://smapi.io/log/6cceb52dada14b43a58da8c7bc0b480a
Dynamic token (full content.json file here - https://smapi.io/json/content-patcher/a7f540dd7084444ba61afd2dbac9f081#L17):

      "Name": "DT_dialogues",
      "Value": "${Mr.^Ms.^Mx.}$ {{PlayerName}}",
      "When": {
        "Hearts:Eleanor": "{{Range: 0, 3}}"
      }
    },
    {
      "Name": "DT_dialogues",
      "Value": "{{PlayerName}}",
      "When": {
        "Hearts:Eleanor": "{{Range: 4, 14}}"
      }
    },
    {
      "Name": "DT_dialogues",
      "Value": "{{Hana.GNMTokens/Title}} {{PlayerName}}",
      "When": {
        "Hearts:Eleanor": "{{Range: 0, 3}}",
        "HasMod": "Hana.GNMTokens"
      }
    },
    {
      "Name": "DT_dialogues",
      "Value": "{{PlayerName}}",
      "When": {
        "Hearts:Eleanor": "{{Range: 4, 14}}",
        "HasMod": "Hana.GNMTokens"
      }
    }```

Due to some reason I don't quite know, CP doesn't want to read my `DT_dialogues` properly...
Is there a kind soul that would help me fix this?
ocean sailBOT
#

Log Info: SMAPI 4.1.10 with SDV 1.6.15 build 24356 on Microsoft Windows 10 Pro, with 70 C# mods and 50 content packs.
Suggested fixes: One or more mods are out of date, consider updating them

flat sluice
calm nebula
#
    {
      "Name": "DT_dialogues",
      "Value": "${Mr.^Ms.^Mx.}$ {{PlayerName}}",
    },
    {
      "Name": "DT_dialogues",
      "Value": "{{Hana.GNMTokens/Title}} {{PlayerName}}",
      "When": {
        "HasMod": "Hana.GNMTokens"
      }
    },
   {
      "Name": "DT_dialogues",
      "Value": "{{PlayerName}}",
      "When": {
        "Hearts:Eleanor": "{{Range: 4, 14}}"
      }
    },
flat sluice
calm nebula
#

that might not fix your problems but maybe it'll hmm.

#

see, mine work, except I haven't actually tested with GNMTokens...actually installed

flat sluice
reef kiln
ocean sailBOT
#

Log Info: SMAPI 4.1.10 with SDV 1.6.15 build 24356 on Microsoft Windows 10 Pro, with 69 C# mods and 49 content packs.
Suggested fixes: One or more mods are out of date, consider updating them

flat sluice
#

DT_dialogues | [X] ${Mr.^Ms.^Mx.}$ Tester prof.6

#

So there must be an error with GNMTokens...

iron ridge
reef kiln
#

oh wait I think I figured out what I did wrong

flat sluice
iron ridge
#

try py -m pip install pyjson5==1.6.3

flat sluice
ocean sailBOT
#

Log Info: SMAPI 4.1.10 with SDV 1.6.15 build 24356 on Microsoft Windows 10 Pro, with 69 C# mods and 49 content packs.
Suggested fixes: One or more mods are out of date, consider updating them

reef kiln
iron ridge
#

hmmm

#

tbh not sure at this point

reef kiln
#

ok, thanks for trying

tropic walrus
#

I have an event in summer that gives the player a non-order board Special Order, and I'd like to introduce a failsafe so that the event can be seen again next summer if the player fails the Special Order.

Has anyone devised a similar failsafe system I could take a look at? There's no queries for failed special orders or anything so I have a hard time coming up with something.

hallow prism
#

you can set a CT in the event equaling the time of your order and have a trigger if order isn't completed and CT isn't here and event was seen, maybe

calm nebula
#
        {
            "Action": "EditData",
            "Target": "Data/TriggerActions",
            "Entries": {
                "TheID": {
                    "Id": "TheID",
                    "Trigger": "DayEnding",
                    "Condition": "!PLAYER_SPECIAL_ORDER_ACTIVE Your_ORDER, !PLAYER_SPECIAL_ORDER_COMPLETE Your_Order, Season Spring",
                    "Actions": [
                        "whatever the mark event unseen command is.",
                    ]
                },
            }
        },
``` maybe?
#

it'll mark the event unseen the next spring if the player has failed the special order

tropic walrus
calm nebula
#

Yeah, AdditionalSpecialOrders has two orders currently that are first launched by trigger action, but they're set up so if the player fails it the first time they just enter the pool like normal special ordres

#

They're not plot orders so

valid moth
#

@rotund elm unfortunately I won't be able to add those changes today after all, but I'll get to it when I get a chance SDVpufferthumbsup

rotund elm
ivory plume
#

Here's a new draft for adding random tourists to the Central Station map, which hopefully strikes a balance between flexibility, simplicity, and avoiding conflicts. Any thoughts/feedback on this approach?

(Click 'open in browser' for full size.)

latent mauve
#

Tia, everything in this section of your Mod Details is still unchecked, right?

latent mauve
#

Pathos, while you're here, could you clarify something for me? If I set up a stop as being part of the bus and train networks, the vanilla bus ticket machine is supposed to work even if you haven't unlocked the desert, right?

ivory plume
#

Yep, assuming you have the latest 0.2.0-alpha.

latent mauve
#

It didn't for me on the 0.2.0-alpha so I am wondering if I messed up somehow

#

Am I supposed to replace the ticket machine myself for that one?

ivory plume
#

I can take a look; can you send me the content pack (and any extra requirements it has)?

#

Nope, you just need to add your destination; Central Station should handle the rest.

latent mauve
#

Sure, will get to a computer and send that on in case I screwed up somehow. It's called into my in-progress Zelda mod since those are my test locations though, LOL

#

So enjoy the sneak preview I guess and ignore the NPC schedule weirdness xD

brittle ledge
#

Also did you see you're hotmodding? SDVpufferheart

latent mauve
#

I did, I lamented the fact that it was for THAT mod

amber nova
#

This event made me want to make a mod where, after Clint turns blue, he doesn't turn back

latent mauve
#

Pathos, I'm gonna split off that stations code and recheck it again before sending it off to you if that's ok.

amber nova
#

Then there's some dialogue about how the product has been canceled and an event where Emily helps him, like, face paint to have a normal skin tone

brittle ledge
#

That would be fairly easy to do.

flat sluice
#

#making-mods-general message

Hello, @ivory plume, while you're here, if you wouldn't mind & when you will have time, could you maybe, please SDVpufferpleading , help me figure out why my Dynamic Token in my dialogues won't work? (BTW, thanks for all of your contributions to SV modding!)
content.json: https://smapi.io/json/content-patcher/f01e1d3859ac4aaeadb74a085ce198a4
dialogues.json: https://smapi.io/json/content-patcher/7d2ba933e8d147e9ad3fde33ba23985e
default.json (i18n): https://smapi.io/json/i18n/35315a196bb44eb68897adcb9dd40f86
log: https://smapi.io/log/ef7b44e33e6c4897acbc09d4a4f1bd16

(Of course, if anyone else would know, don't hesitate to respond! also, please, ping me on reply!)

ocean sailBOT
#

Log Info: SMAPI 4.1.10 with SDV 1.6.15 build 24356 on Microsoft Windows 10 Pro, with 69 C# mods and 49 content packs.
Suggested fixes: One or more mods are out of date, consider updating them

ivory plume
harsh bobcat
#

Oh I was looking at my decomp earlier today and got confused by something; Utility.FilterUserName has comments saying it removes special characters but in my decomp it does literally nothing [just returns it as is]. is this just a platform specific thing? (like, is this why item id is patched on switch? because on switch they remove the command characters from the name?)

iron ridge
#

the former is probably changed by porting teams

#

the latter is because nintendo doesn't like fun

ivory plume
harsh bobcat
#

that makes sense

amber nova
#

Not saying anything to the difficulty

brittle ledge
flat sluice
amber nova
#

I don't mind the difficulty regardless, I just wanted to talk about the idea instead

brittle ledge
#

Sorry, I was trying to encourage you by saying that would be easy enough to be a great first project SDVpufferheart

uncut viper
#

this IS the channel for making mods though, but if you just wanted to put ideas out there, there is a github repo for ideas you could submit to! i forget the command for it though

gray bear
#

!modideas methinks

ocean sailBOT
#

If you have a mod idea that you aren't planning to make yourself, you can put it in the mod ideas github: https://github.com/StardewModders/mod-ideas

However, this does not mean anyone is guaranteed to work on your idea—modders who are looking for ideas sometimes go through and work on what they find interesting off this list. If you want to pay someone to make your mod idea, there are a few people who do commissions (mostly art, sometimes code); you can ask around, search usernames for the word comms, or see !commissions.

uncut viper
#

thank u

amber nova
#

I find it much more interesting to iron out details than talk about the level of difficulty, too much people in MC Modding being like "that would be this difficult"

brittle ledge
#

If you haven't made a mod before (assuming here since you're new), CP might seem intimidating and/or people might not know what would need to be done for a project. In this case you'd need a portrait edit to overlay his usual portraits that's conditioned on having seen the first event but not your second event where Emily facepaints him. kyuuchan_nod2

#

Events can be a little tricky since they're scripts with custom commands, but we have a lot of tutorials for those too kyuuchan_nod2

amber nova
#

Yeah, I figured the technical difficulties won't be that bad. I'm more interested in ironing out the details of how the idea would look atm

#

At work right now, so I can't code anything anyways

drowsy pewter
uncut viper
#

(tbh sometimes people here can sometimes get into "that would be this difficult" territory too but usually its bc a lot of new modders either ask how difficult it would be or assume incorrectly that its a lot easier than it actually is. sometimes it seems like what should be easy is hard and vice versa)

calm nebula
#

It removes swear words on other platforms but is a nop on steam

drowsy pewter
#

Ah hold on, I should be able to use Spacecore to place wild trees on maps

flat sluice
ocean sailBOT
#

Log Info: SMAPI 4.1.10 with SDV 1.6.15 build 24356 on Microsoft Windows 10 Pro, with 70 C# mods and 50 content packs.
Suggested fixes: One or more mods are out of date, consider updating them

ivory plume
latent mauve
#

Well, mine is still broken after splitting the code sadly, so I'll send that along shortly.

harsh bobcat
# calm nebula Platform specific

I mean it states that it replaces special characters that would cause crashes or bugs, not that it's a language filter. interesting if it actually does that instead

latent mauve
#

Would you prefer I just sent the part of my mod with the location data so it's easier to parse through, Pathos?

ivory plume
#

A minimal content pack that reproduces the issue would be ideal.

latent mauve
#

alright, I'll put the location code in a separate pack so I don't have to send the whole LoZ NPC mod over.

ivory plume
harsh bobcat
#

ah cool

#

okay note to self, see if there's any fun things I can do with any of the omit characters

brittle ledge
flat sluice
brittle ledge
#

While Pathos is putting off mod-fixing vibes: has anyone used FlowerDanceCanDance for a non-romanceable character and gotten it to work? and can I go peek at your code

flat sluice
brittle ledge
#

No worries, I only found that out by other people mentioning it here SDVpuffersquee

gentle rose
#

(pathos, while you’re here, I made myself/kisaa a CJB cheats warp button content pack for Central Station for convenience, do you want me to send it here too?)

ivory plume
#

Oh, that's a good idea. I'll have Central Station add its own warp to CJB Cheats Menu.

calm nebula
brittle ledge
#

It's a test mod loadout, it shouldn't

#

Let me look

ivory plume
brittle ledge
#

Here's the funny thing: if I patch reload, the NPCs start walking like they're outside a festival and will give daily dialogue, but THEN will give me the dance prompt.

latent mauve
#

I've been getting reports of Satoru Gojo's flower dance text not working either, even though I changed nothing there since last testing in 1.6.14.

brittle ledge
#

(Also, no Flower Dance Fix)

latent mauve
#

(I have, of course, received no logs for this report)

gentle rose
#

(also, the thing with not being able to trouble to Central Station from the bus stop until the bus is fixed is still happening, though I have no idea if it was even expected to be resolved in alpha 0.2.0 or not)

gentle rose
amber nova
brittle ledge
amber nova
#

I'll have to think out the details of how I want the blue event to happen to make it a mix of immersive and funny

brittle ledge
#

SDVpufferthinkblob He should be danceable by default if he's romanceable (unless that's locked behind something). Have you tried taking that out and checking?

latent mauve
#

Well, the thing is, it worked on my testing, tia. 😛

#

Before the flurry of base game updates and hotfixes post 1.6.9

#

I just haven't tested it again since

#

It's been low priority since they never sent me a log

brittle ledge
#

If you send me over/link your latest version, I can check, I'm on flower dance day in my test save

lucid iron
#

is there GSQ for checking NPC.IsInvisible

calm nebula
#

no, but there is an event precondition

gentle rose
#

…that reminds me I need to fix Map Event Markers. It works, but I’m honestly not sure why right now

#

because I wrote it back when preconditions were one letter and it looks like they are not that any more

#

maybe that’s why it was having issues with vmv…

brittle ledge
gentle rose
#

never assume why someone was having issues with a mod, it’s always weirder than you think /lh

#

from my experience with nexus comments, if it was reported there there’s even a chance they decided it wouldn’t work without ever downloading it…

latent mauve
#

Yep, that is why it was low priority to fix xD

brittle ledge
#

Well, at least now you know it's not broke SBVLmaoDog

latent mauve
#

Haha, thanks for checking it!

brittle ledge
#

Okay, so I have FlowerDanceCanDance set to true and I have accept/decline dialogue keys. Would anything else be needed?

#

Like, this patch seems so simple that I don't know what to debug.

latent mauve
#

@ivory plume here's the minimal repro pack, shouldn't need any mods besides Content Patcher and Central Station.

#

Here's hoping it's an oversight on my part and not something annoying to fix. 🙂

tribal ore
#

Is !HasFlag valid as a When condition?

uncut viper
#

"HasFlag |contains=FlagYouDontWant": false

tribal ore
#

Thanks, Button

uncut viper
#

the ! is for GSQs

brittle ledge
#

Again: this does work IF I patch reload and they start wandering

#

but it won't work playing the festival normally

#

My flabbers are ghasted, my bams are boozled.

calm nebula
#

can you roommate the cats

frigid aurora
#

love friend options to dance with

calm nebula
#

the code is...complex here

brittle ledge
calm nebula
#

okay, so it's not that

#

this..is

brittle ledge
#

Is there anything useful I can put in the log before I upload it?

calm nebula
#

nah, I'm just codediving

brittle ledge
#

I don't understand why patch reload would make it work, except for the fact that it seems like patch reload breaks other things in the festival

gentle rose
#

oh @latent mauve I see you ran into the same issue I did - an even more minimal repro is just central station on its own 😅 the bus stop just doesn’t take you to central station until you unlock it even without adding stops right now

ivory plume
#

I'll be posting 0.3.0-alpha later today though.

gentle rose
hallow prism
#

central station looks really promising

final arch
#

is Revali the bird from zelda?

lucid iron
#

Would the menu get rly tall eventually

#

With more mods using it

rotund elm
#

Can anyone tell me why some people use "\" in their targets but "/" in their FromFile portions?

#

Am I missing something important... XD

ivory plume
lucid iron
#

-# tube map menu

ivory plume
rotund elm
#

Thanks Pathos, I was worried it was something important

gentle rose
brittle ledge
#

Pathos, if you don't mind me asking, when you tested Evelyn dancing, was adding the field to her dispo and adding the accept/reject dialogue keys all you did?

calm nebula
ivory plume
brittle ledge
#

That's literally all I'm doing, I have no idea why it only works with patch reload.

latent mauve
#

There is another but it requires visiting the Woods first

#

Either way, glad to know that it will work in the next release!

lusty elm
#

.choose Mod, Read, Study, Game.

patent lanceBOT
#

Choose result: Mod

lusty elm
#

fitting

astral prism
#

where is this property accessible in an NPC (c#)?

ivory plume
#

npc.GetData()?.FriendsAndFamily

astral prism
#

ah........

#

thank you!

reef kiln
#

If I do this it will make it so goats need a barn instead of the big barn, right? I want to make sure I am only overwritting that one field.

        {
            "LogName": "Load data for Goat",
            "Action": "EditData",
            "Target": "Data/FarmAnimals",
            "Fields": {
                "Goat": {
                    "RequiredBuilding": "Barn",
                },
            },
        },
mighty quest
#

anybody know which tilesheet has this animal menu button sprite?

rotund elm
mighty quest
gentle rose
#

wdym by "cannot" in this case? errors, nothing happening, ?

rotund elm
#

No errors, nothing happens

#

the rain totem and Qi Arena totem work as intended

gentle rose
#

cape stardew isn't your mod, right?

rotund elm
#

No

#

This won't be a public mod either just for my personal modlist

#

I guess I could just replace their sprite

gentle rose
#

no that's fine, just asking so I know what is and isn't possible

#

those targets look incorrect to me, are you sure that's what their asset names are?

#

where did you find these target paths?

rotund elm
#

object.png is the asset name and file type, I copied the paths directly from the file explorer

gentle rose
#

oh I see the confusion

#

an asset target isn't the same as the location of the asset in a folder, it's an internal label the game uses

#

you need to check their content.json to see what they loaded those assets to

rotund elm
#

Ahhhh

lucid iron
#

do patch export Data/Buildings

#

find the cape stardew obelisk

gentle rose
#

that also works, yeah, whichever is quickest haha

#

(the only place where the asset target will definitely be the path is when you're looking at the unpacked game files)

lucid iron
#

hm if i want to make a Id field that content patcher can use

rotund elm
#

I didnt have the game open so I just used the file

lucid iron
#

it just gotta be called Id and return a string right, i was hoping to ban ppl from actually editing it blobcatgooglyblep

#

yep thats the target

rotund elm
#

I would use Objects/SeaCapeWarpTotem/object right

lucid iron
#

no

#

Target

rotund elm
#

ok just copy the target then

#

I always read to much into things XD

#

Thank you both!

hallow prism
#

woooh my bugs are working!!!

rotund elm
#

Bugs?!

lusty elm
#

Bug Mod?

hallow prism
#

a very strange sentence to write if you don't know it's in context of making a pack for nature in the valley

lucid iron
#

looking forward to "added bugs" next vmv

gentle rose
rotund elm
#

I love nature in the valley

lucid iron
#

its specifically for content patcher TargetField

#

i dont want ppl duplicating Id in the list blobcatgooglyblep

hallow prism
#

ahah 😄 maybe one day i'll make a VMV only pack but so far what i have is some bugs that requires either a foraging level or being in VMV natural areas, so players may get a chance to find them early with VMV installed

gentle rose
#

oh like so they should be able to edit everything but the ID basically?

hallow prism
#

(some have a similar thing with GI or being summer in valley)

lucid iron
#

the other thing is that

#

i put a List<List<Model>> in here

#

i had good reasons ok

gentle rose
#

the road to hell and all that

lucid iron
#

the good reason is that they genuinely needed ordering

#

and makes zero sense to ever reorder

#

sadly reorder is cp feature

gentle rose
#

honestly I can't picture the issue without seeing a bit more of the context rn so I'm not going to be very helpful haha

lucid iron
#

yea no worries im just musing on the model design

gentle rose
#

you reminded me I need to look at the cp docs for custom asset models

#

because what I'm doing right now makes List<List<Model>> look ideal

lucid iron
#

gist is that trinket tinker is hella nested since i looked at machines and was like, this is fine

#

u need 4 TargetField to drill down here

calm nebula
#

SortedDictionary

lucid iron
#

one of which is a #0

calm nebula
#

Also, just fyi, the order of items in a c# dictionary is known and as long as you remoce no entries is deterministic

lucid iron
#

i dont think i can like, tell who is edit though

gentle rose
#

you guys keep reminding me why I stay away from content pack hell

lucid iron
#

and well, even if it make no sense to reorder to me the framework author

#

im sure someone will find niche usage for it

deep cypress
#

Hi loves!!!!!! This should seperate between spouses who are farmers and spouses who are just regular ordinary run of the mill npc's, right?

 if (spouse.IsVillager)
 {```
lucid iron
#

so going out of me way to ban it is pretty meh

gentle rose
#

wait I finally understood what you mean with the IDs 💀 okay I'm with you now, I see the use case

#

...I think

#

as I keep rediscovering, json is not my usual preferred flavour of cursed

lucid iron
#

i dont think i care do anything about the List<List> rn

#
"TargetField": [
  "{{ModId}}_Krobus",
  "Abilities",
  "#0",
  "#0"
],
#

i just hope to make this last #0 an Id

gentle rose
#

but also prevent them from editing said ID(?)

lucid iron
#

guess it could be editable as long as i am fallback to stuff sleep

#

this mod has so many knobs 1 more cant hurt

#

personal fav knob is "how much to squish when u bounce"

gentle rose
#

I think the issue is if you're setting that ID in a content pack in the first place, right? if you set it in c# then it should be pretty easy to just ignore what any content pack says to do with it

lucid iron
#

i am doing this in C#

gentle rose
#

oh, then can't you just make your code not read/use the ID from the cp model? like just discard it and use an internal one instead

#

idk if I'm explaining this right, my meds are deep frying and scrambling my brain today

lucid iron
#

yea but newtonsoft doesn't care very much about private blobcatgooglyblep

#

or default values

#

a lot of Id fields in vanilla can end up in null

#

or as dupe

gentle rose
#

are you reading the model directly into your code then?

lucid iron
#

?

gentle rose
#

yeah I assumed that made no sense

lucid iron
#

if u mean like

gentle rose
#

I will eat dinner then try to figure out how to make my brain do words good

lucid iron
#

did i take the time to build a second class from the class built from content pipeline

#

no

#

it seemed like a waste

#

and worry not i already decided what do Dokkan

gentle rose
#

I feel like my solution would be to have an internal underlying ID property/field/thing? that writes to the ID field used in the cp model but doesn't read from it, but I say that not knowing if that's even remotely possible SDVpuffersquee

lucid iron
#

its not that different, the main problem is just the individual model doesn't know its own position in a list

calm nebula
#

Quirks

gentle rose
#

"abuse of functional programming" same tbh

#

I had one fp course in uni and use it only for evil

#

can you even make internal versions of methods or am I making that up

lucid iron
#

this isnt the model of concern

#

but yea i was gonna do encapsulation like that

gentle rose
#

yeah, makes sense, I forgot all the words for things today but I'm pretty sure that's what I was trying to say

lucid iron
gentle rose
#

time to make your own list subclass /lh

lucid iron
#

i did think about doing something with Abilities set

#

but im unsure how exactly edits go through blobcatgooglyblep

#

it seems safer to just do 1 pass at the end and gib everyone the right Id (that is what Quirks.cs was doing)

#

it is quirks over there cus those r base game data/machine stuff

#

and feature here cus its my stuff

gentle rose
#

on an unrelated note, I wonder how hard it is to take an existing monogame game (that I made dw) and turn it into an (unfun tbh but that's irrelevant) stardew minigame

lucid iron
#

take a look at IMinigame

gentle rose
#

fear /lh

lucid iron
#

its got the usual gameplay state loop stuff

#

so prob not that bad?

gentle rose
#

hopefully not. I'm hoping the underlying stuff can stay the same and all that would need to be modified is the asset pipeline and then just plugging into the iminigame interface

lucid iron
#

u gotta get ur graphics to scale for sdv ofc

gentle rose
#

this code is less ugly than code I look back on a year later typically is tbh

#

they're already pixel graphics and they're ugly bc I was lazy SDVpuffersquee

lucid iron
#

i think it'd be fun and easy to make snake

#

and minesweeper

gentle rose
#

I'm thinking solitaire

#

because I already have monogame solitaire

uncut viper
#

i would like stardew tetris please

lucid iron
#

fun but less easy for 3d pinball space cadet my beloved

gentle rose
#

from what I know about the tetris people, I'd rather make a stardew disney X nintendo crossover a_sideeye

#

the real question when looking back at 1yo code: did I actually write non-spaghettified code for once or am I just not finding the mess yet

lucid iron
#

hm all this Id musing turns out for naught

#

i cant seem to TargetField into list of list anyways

#

oh maybe its cus i use IReadOnlyList

calm nebula
#

yes

dusk mulch
#

bro what

#

where is the game music stored

#

i cant find it

lucid iron
#

u need special stuff to unpack it

#

but if u just want to use a particular track, theres a list of the names iirc

dusk mulch
brittle ledge
#

question, does the A precondition of events check to make sure the CT did fire and is no longer active, or that it just isn't active now?

dusk mulch
#

i use the xnb hack

lucid iron
#

[[Modding:audio]]

dusk mulch
#

ty

lucid iron
#

unxwb is easy to use but u dont get the names

#

honestly not much point to it

uncut viper
#

there is no check whether it was previously there

brittle ledge
#

okay, so I need to also have a condition that the event was seen

dusk mulch
#

krobus give me strength to go through 437 sound files...

gentle rose
#

the wiki says they are but I’m now seeing there’s no explanation or version number attached SDVpufferthinkblob

#

it also doesn’t list A as a short-form alias for ActiveDialogueEvent at all, weirdly enough

brittle ledge
gentle rose
lucid iron
#

🅰️

gentle rose
#

Random precondition my beloathed

brittle ledge
#

ughhhhh I don't like change SBVWahSob

calm nebula
#

random precondition?

lucid iron
#

get with the times boomer /j

gentle rose
#

ah yes, the two genders, male and not male

brittle ledge
#

just like reality

gentle rose
gentle rose
calm nebula
#

gender cactus

gentle rose
#

what is it you say, atra? I want this on my desk by next week? that

#

tbh a “fix all the hardcoded gender stuff” framework is sounding more and more necessary by the minute… I already made a transpiler for avi that allows overriding the gendered relationship labels for certain npcs

modest dagger
calm nebula
#

technically

gentle rose
#

I wonder how many (sfw) mods actually check for that precondition though

calm nebula
#

the quantum in quantum mechanics refers to the discrete grainyness of the universe

#

so quantum/quantized means "countable"

#

maybe's a superposition

#

anyways

gentle rose
#

sounds like something you’d learn at a degree that doesn’t refuse to come within ten feet of real world applicability, can’t relate

calm nebula
#

instead of being Smart TM and migrating Giant Crop Fertilizer off atracore, I...fixed up the special orders mod I totally was not working on

gentle rose
#

oh yeah btw, Central Station has an even lower nexus id than your special orders mod SDVpuffersquee (found through the alpha’s update keys)

calm nebula
#

we're rocking 2022 again, huh

gentle rose
#

2021

#

February 2021

calm nebula
#

Nice

#

I wonder what other keys Pathos has

gentle rose
#

when I was rolling for random mods I found so many that were reserved and seemingly never released

#

it’s fun seeing their names though (if you’re a mod author and don’t want people to see your unreleased mod’s name, do not put it in nexus btw! it can be seen even when the mod can’t)

#

I saw one today actually that apparently was adding an orphanage

devout otter
#

Maybe I'll reserve a mod page, title it "To be released on April 1st" and just never release.

lucid iron
#

do yall make mod page when u r ready to ship

#

or when u get the idea

brittle ledge
#

depends

calm nebula
#

look, that special orders mod was the CP companion pack to a C# mod

gentle rose
#

I make mine at the absolute last minute and can’t think of a reason not to tbh, other than the fun of seeing how long ago you started

brittle ledge
#

the laat couple I made after the mod was done, but Wren will have a pretty low mod ID because I've been working on her page for a while

calm nebula
#

the C# mod I released in 2021 and never updated for 1.6

#

then 1.6 gave the Conditions field

gentle rose
#

the conditions field is a 1.6 update????

#

huh

#

that explains why I’d never heard of gsqs until I joined this server and started modding again SBVLmaoDog

uncut viper
calm nebula
#

Anyways

devout otter
gentle rose
#

I wonder if some people snipe fun/round IDs for the fun of it to use later

calm nebula
#

I used to make the mod page when I was ready to ship, I just got cold feet on a handful of mods. Repeatedly

gentle rose
#

(looking at you, pathos /lh)

calm nebula
#

That said, my one remaining mod page I haven't used is, of course, Pam Tries'

uncut viper
#

i have waited to try and get a good number before but only for mods i did actually plan on releasing asap

gentle rose
#

central station has 8000

calm nebula
#

wondeerful number

#

very well deserved

#

tbh I was also supposed to be writing the analysis page for my map renderer rewrite but my brain cell is asleep today so maybe next week lol

devout otter
#

Always Raining in the Valley has 9999.

gentle pebble
#

So I was finally able to patch in the house for my NPC however I am now running into some new issues! Im not really sure how to go about it some help would be amazing! 1. I have vegtables growing on my house 2. I cant seem to walk on the porch of my house. Im pretty sure I just need to make the porch path instead of building.

gentle rose
#

and since that’s from 2021 like I said and central station is apparently a new idea… SDVpuffersquee

lucid iron
#

reset terrain features

gentle rose
lucid iron
#

those r the spring onions though, r u sure u wanna patch over this part

#

ppl will be sad Dokkan

hallow prism
#

i am quite happy with the number i got for my progress toward perfection mod, 29000, because it's satisfying 😄

gentle pebble
gentle rose
#

less sad and more annoyed that one of only two patches for spring onions is gone now 😅

lucid iron
#

just plant them ez

whole raptor
#

Do we have any commands to make NPCs go to the island.. for example the next day? SDVpufferthinkblob

gentle rose
#

…they’re plantable?

lucid iron
#

with a mod yea

latent mauve
gentle rose
ivory plume
# gentle rose central station has 8000

(A mod author who left a while back donated that unused ID to me; I don't reserve IDs ahead unless we're like 2 away from a good one and I'm about to release the mod.)

gentle pebble
#

So how would I get rid of the spring onions because im too lazy to rewrite my code and find a new spot

latent mauve
#

It sounded like they wanted a console command, irocendar. I just don't know of one, but I do know the patch trick

whole raptor
devout otter
whole raptor
#

But I guess wctm can work too, it's just less "natural"

gentle rose
calm nebula
#

fun fact: there's nothing special about beach schedules, other than them being generated

gentle rose
#

oh ping, I keep missing that 😭

latent mauve
#

I haven't tried scheduling someone to go to the island directly but it might be possible with a patch as well if you wanted to trigger the change to happen due to a pre-event condition

calm nebula
#

you could literally do

"spring": "610 IslandSouth x y/1200 IslandSouth x y change_beach/..."

ivory plume
#

(Pings are fine! I often won't notice messages that don't ping.)

lucid iron
#

if u press shift when u reply then ping's off

calm nebula
#

you literally can just do that

gentle rose
#

I’m on ipad where none of the fun keyboard stuff works SDVpufferflat

lucid iron
brave fable
#

pathos can i suppress warnings about entries not found when using moveentries

ivory plume
#

Nope. Content Patcher doesn't have special-case handling for specific assets, it's just a general framework for editing any asset.

tender bloom
lucid iron
#

i was hoping i could express it with like, IOrderedEnumerable

lucid iron
#

or smth like that blobcatgooglyblep

gentle rose
#

as always, I have suggestions that may or may not be closer to cautionary tales than helpful advice

uncut viper
ivory plume
brave fable
#

oh was it? wonderful

#

somehow i didnt think anyone else wouldve been complaining about it

uncut viper
lucid iron
#

i want to refactor less

#

and it'd just end up being OrderedDictionary<int, thing> without guarnetee of continuous so its a bit silly

calm nebula
#

looks at chue or dh

#

active.

brave fable
#

why stop at spring onions SDVdemetriums

lucid iron
#

CropSpawnZone

brave fable
#

anyway this sounds like a preexisting feature of pytk

lucid iron
#

well its dead

brave fable
#

of course, The Spring Onions Zone is a very attention-grabbing mod name

gentle pebble
gentle rose
#

(the suggestions range anywhere from harmony patching content patcher(nested paren, content patcher patcher?) to implementing special collections like you said)

gentle rose
lucid iron
#

idk if i would solve the forest case with a map prop though

gentle rose
#

do I remember where? absolutely not

lucid iron
#

it seems like the kind of thing where we ought to just harmony in the most convienant implementation

#

OopsAllSpringOnionsEveryDirtTile

gentle rose
#

see I was worried about where you were going with that for a second

brave fable
#

that's just the uniqueid

calm nebula
#

(tbh, in 1.5.6 I had a mod installed that, correctly for a cooking mod, required a lot of spring onions)

#

(I later installed a mod that would let me grow the stupid fuckers)

devout otter
calm nebula
#

the only thing a cooking mod could do to get closer to my heart is put garlic in everything

brave fable
#

one of loc 1.0's key features was to put spring onions in fuckin everything

#

and rice. lots of rice

gentle pebble
#

got it thank you

lucid iron
#

does loc give me a rice rating

gentle rose
#

where’s the cooking mod that lets me leave them out out of both laziness, an unwillingness to buy them and a hatred of the texture?

lucid iron
#

whats blueberry with rice at

brave fable
#

no, but i can try and give you one myself

hallow prism
#

well, if i remember that in some days, and have time between all the stuff i want and have to do, i may do it (or not)

tawdry light
#

If I add a new item to the game, can I add it to the list of things that can be gifted during events with the awardfestivalprize command?

#

I wanted to make a new event that gives clothes like Emily's, but as it seems this command only has a few options for prizes and u can't just put any item in the game

calm nebula
#

so, that command used to be that way, but you can do now

#

awardFestivalPrize <any qualified item ID>

#

so yes

hallow prism
#

there are likely other ways to give items too now

tawdry light
#

That is the best update when it comes to modding that I could ask for. I can finally go back and fix one of my events so that I'm not forced to reward a second "Marnie's Portrait" just cause there is no other option.

#

are all item IDs in the event modding resources spreadsheets and if not is there a way to get an ID for a specific item?

hallow prism
#

!unpack then open data/objects

ocean sailBOT
#

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

tawdry light
hallow prism
#

you'll get a list, search, the key here is the id

#

268 in this case, BUT new stuff can and will be a string

lucid iron
#

is there a established sound cue name that's just "silence"

uncut viper
#

"none"

#

tho actually idk if that works for sfx

tawdry light
brave fable
#

any qualified item id from atra's post shows that you can use non-objects, too, such as furniture

hallow prism
#

they are different kind of objects

#

they have their own file and their own identifier

brave fable
#

the qualifier determines the data type of the item: (O) is a qualifier for an object, like a strawberry, and (F) is a qualifier for furniture, such as a retro table

hallow prism
#

so a furniture will have stuff in form of (F)idofitem

#

clothes are (S) for shirts

brave fable
#

you can search in Data/Furniture and Data/Clothing for other item names, and refer to [[Modding:Items]] i think for a list of qualifiers

hallow prism
#

pants are probably (P) but the wiki will be better

tawdry light
#

Gotcha, thanks a lot to all of u

#

Can't wait to add some new clothes and go cosplay with Sebastian

#

Maybe then people will finally stop asking for more Sebastian events, which fair cause the only one I have for him kinda sucks

#

lol

#

anyway, thanks again!

stoic galleon
#

I have a question about how spacecore handles animations. There was a mod that animated obelisks through Content Patcher Animations that managed to animate the Farm Obelisk. I converted it to spacecore, but the Farm obelisk specifically isn't animated. Is it because in the base game it's stored in Maps and not Buildings? Does that make spacecore unable to install it and is there no workaround?

lucid iron
#

the farm obelisk is a map so you don't need any special mod to animate that (just a map patch with tsx animations will do)

#

you also don't need any special mod for buildings if you change it to draw layers

stoic galleon
#

A map patch, got it. Thank you for answering my question. Out of curiosity, do you know why the farm obelisk specifically isn't in Buildings? It also makes it impossible for AT versions.

lucid iron
#

you can't build things outside of farm in 1.5

#

so i imagine thats why mr ape implemented it as a map feature

#

they probably could have made it a building in 1.6 but they had better things to do, and also AT needs to fix that bug where it doesnt work on buildings outside of farm (for basically the same reason)

stoic galleon
#

Thanks for the detailed answer, it makes sense and I hope some day there's a fix.

lucid iron
#

theres prob some wacky thing u can do to make it a building now

#

quite doable in C# ofc, but u need to sacrifice compat for all the mods that do believe it is map patch

fleet oyster
#

is this the channel to talk about mod making in? I got some questions lol

fleet oyster
#

okay, so, if I were to make a mod that needs both content added and mechanics, how would the mod structure go?

#

also, do I need to include a Content Patcher dependency in the manifest for the content adder or both the manifest for the mechanics and the content?

uncut viper
#

what kind of mechanics do you mean?

#

also, when making a content pack for content patcher, simply putting it as the "ContentPackFor" field is sufficient

lucid iron
#

you cant have both ContentPackFor and EntryDll, so there's a few approach here

  • do all the content editing in C#
  • figure out if they actually need C#
  • package 2 mods together one with ContentPackFor one with EntryDll
fleet oyster
#

That is actually really helpful! Thank you

lucid iron
#

theres a feature in ModBuildConfig for the last case

dull bay
#

Hey ! I would like to create a pokémon mod for water type Pokemon, and add a new type of coop with lake inside, how could I start this project and learn step by step ? ☺️

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.

uncut viper
#

the specific process will vary depending on the specifics of what you want to accomplish

#

the new coop though is probably all doable in content patcher

lucid iron
#

hm indoor water

#

do farm animals swim o those

brittle ledge
dull bay
# lucid iron hm indoor water

Yes, I would like to drop eggs by fishing for example and incubate the egg to have a pokémon in a coop, like chickens

lucid iron
#

you should take a look at map modding too

#

[[modding:maps]]

lucid iron
#

since you will need to make the interior map for your farm animal building

#

and prob stuff about adding fishing data

dull bay
#

Thank you, I will read this for maps editing

fleet oyster
#

How do I get my cp changes to load?

gaunt orbit
#

hmmm
something somewhat irritating about the hud is that drawing and input are processed in the same order, which means that if you have overlapping hud elements, the one that displays "underneath" captures all the inputs, while the one "on top" obscures it by drawing over it

uncut viper
#

are you talking about like, ClickableTextureComponents

gaunt orbit
#

no, Game1.onScreenMenus

#

considering writing a transpiler for Game1.drawHUD() to replace the foreach with a reversed for, but idk if it's worth it

lucid iron
#

does the content patcher Range token have step

calm nebula
#

Nopr

rotund elm
#

For getting the target path for the keybindings and settings button for gmcm what file should I be looking at in the source code.... IDK how to understand C# XD

#

I thought something like that is normally in the main .cs file but I am not seeing where the pngs are mentioned

lucid iron
rotund elm
#

Thanks Chu SDVpufferheart

rigid oriole
#

Oops that's my fork

rotund elm
#

XD

mighty quest
#

I will cast my vote for yes, please :3

rigid oriole
#

I believe the Readme has an example?

rotund elm
#

I didn't even think to check the read me... O_o

rigid oriole
#

It doesn't have a keybind example but it has an example of using the api

#

You don't have to split into multiple files like i did, I just found it cleaner bc my config got kinda long

ivory plume
#

(First prototype of random Central Station tourists working!)

latent mauve
#

(will it be possible to put one sitting on a bench?)

ivory plume
#

Not directly, but you could just have a bench they're sitting on as part of your map patch.

latent mauve
#

That works for me

lucid iron
#

@ivory plume what are your thoughts about translating content patcher docs (to chinese specifically)

#

since github is spotty in china it'd be best if they could host it somewhere else bolbthinking

ivory plume
#

I have no objections, though I'd be concerned about the docs becoming outdated if they don't have a regular maintainer.

lucid iron
#

yea that is true, though i feel like any doc is better than no doc in terms of getting ppl to do not xnb mods

ivory plume
#

Central Station preview 3 is now available!

Recap:

Central Station lets you travel to mod locations in a more immersive way using boat, bus, and train networks. It has a central station hub where you can switch lines, visit the food court and gift shop, access pop-up shops from other mods, and more. See info for players and for mod authors.

Changes since the last build:

  • Added random tourists to the Central Station map. There are currently 31 tourist spawn tiles (each with a 35% chance of spawning a tourist each day), and 19 built-in tourists.
  • Added support for custom tourists from other mods.
  • Added warp in CJB Cheats Menu.
  • The Central Station map is now loaded through the content pipeline.
  • Fixed bus stop's ticket machine not always showing Central Station destinations.
  • Fixed typo in shop item ID ('triple shout espresso').

Not included yet:

  • Mod pop-up shops.
  • Tourists can't choose the areas they spawn yet.

Feel free to try it out and report bugs, feedback, or suggestions here! This is the best time to try adding your mods to Central Station and see if there's anything you don't like, before it's released and the format becomes much harder to change.

devout otter
#

Pathos, I don't know whether this'd be difficult to do or within the scope, but is it possible to add an option to make any particular tourist has dialogue box with portraits?

deep cypress
#

Game1.player.getRidOfChildren(); is officially accursed code!!! ❤️

lucid iron
#

dolphin portraits agenda

deep cypress
#

(if u are curious, yes, I am doing something accursed.... it's a exactly one child doving item - any recs what the item is?)

lucid iron
#

olive wreath but like, evil

ivory plume
#

(I'm surprised there doesn't seem to be a built-in action for it.)

uncut viper
#

(BETAS has one tho—)

ivory plume
#

(Great! You can use the BETAS tile action in your tourist patch then.)

lucid iron
#

wait button is it a tile action

deep cypress
#

What about a Zeppelin for the Central Station?

uncut viper
#

i thought there was a tile action that called a regular action

lucid iron
#

forcing dolphin into 2 whole dependencies just to draw portraits

uncut viper
#

oh im thinking of spacecores trigger action action

tiny zealot
#

button, surely you should implement the tile action that calls a regular action?

uncut viper
#

i thought it was vanilla already when i said it SDVpufferpensive

lucid iron
#

its probably easy to just enmass register a equiv tile action for any action u make right

#

to skip middleman

uncut viper
#

they have different signatures, the delegates

lucid iron
#

but u can just register a local one i thought blobcatgooglyblep

uncut viper
#

wdym

lucid iron
#

(location, args, farmer, tile) => actualActionMethod

uncut viper
#

would i not have to make a new function that takes in the arguments a TileAction expects

#

hm

lucid iron
#

maybe have some closure implications ofc

uncut viper
#

id never considered it

lucid iron
#

i have used this in one off static methods, unsure if its as easy in ur automagics

devout otter
#

With BETAS it can do everything a dialogue command can do, right? So I can can use #$e# to simulate the "Each time the player clicks the tourist, it will show the next dialogue in the list" part?

uncut viper
#

uhhhh

#

i dont think so

#

you can do other dialogue commands but there'd be no actual NPC to attach the dialogue too

devout otter
#

Aw.

uncut viper
#

i think you can achieve the same effect with spacecore's triggeraction action though

#

by setting a mail flag along with the initial dialogue box action maybe

#

to determine which one to show

#

along with the If action

devout otter
#

Like first trigger, second trigger, third trigger?

uncut viper
#

If (mailflag) ShowDialogueBox1 # showDialogueBox2

#

very pseudocode there i dont remember the syntax for If

ivory plume
#

(Maybe I could add support for spawning an actual NPC instance, as an optional alternative to the map patch approach. Then you could have regular NPC dialogues with portraits.)

uncut viper
#

the best way to achieve this effect with BETAS is to not use BETAS and instead scopecreep Pathos

lucid iron
#

Would it be the simple non villager npc stuff like fizz

uncut viper
#

i imagine it cant be like, too difficult to just set up static Tourist1, Tourist2, Tourist3 etc Data/Character entries or somethin

#

and let people edit those conditionally every day or based on your conditions you allow

#

tho admittedly i didnt look at the new docs yet i was busy so i dont know what restrictions you have on the tourists already or how theyre meant to be edited

devout otter
#

Well I can always make dummy NPCs, put them in a void and use the built-in NPCSpeechMessageNoRadius as tile property to call for their portraits, I suppose...

lucid iron
#

I think they r supposed to be in a pool

uncut viper
#

maybe let people add their own entries into Data/Characters whose internal names follow a specific format? like CentralStation_TouristFromMyMod

#

and just pick em out of a hat

lucid iron
#

Hm so if u can Dialogue the tourists which can action

#

Hire random mercs from central station ukimasu

uncut viper
#

tbh htinking about it more if adding support for actual NPC instances is too wonky the dialogue break thing can actually i think easily be achieved with BETAS using WritePlayerModData and the [ReadPlayerModData] tokenizable string

#

just get the dialogue from the mod data and write to it when you're done with the new dialogue which will appear next time the action happens

lucid iron
#

Button is betas actually a use mod data as kv store framework

uncut viper
#

it is if you want it to be

#

you could even change which key you store to by reading the key you wanna store to from another key, which you can change

#

WritePlayerModData [ReadPlayerModData KeyToGrab] [ReadPlayerModData KeyThatHoldsValue]

#

could do a buncha fancyu stuff with some clever chaining

ivory plume
#

Potential syntax to spawn an actual NPC instead of a map patch:

"{{MainModId}}": {
    "FromNpc": {
        "InternalName": "Fizz",
        "DisplayName": "Fizz",
        "SpriteAsset": "Characters/Fizz",
        /* "SpriteSize": { "X": 16, "Y": 32 }, // optional */
        "PortraitAsset": "Portraits/Fizz",
        "Dialogue": [ ... ]
    }
}
gentle rose
#

Do I go to sleep because it's nearly 5am, or do I play around with 0.3.0...? CB_pika_think

0.3.0 it is

uncut viper
#

does it even need an internal name at that point then if you are specifying the displayname, portrait, sprite, and dialogue?

ivory plume
#

Depends how it works under the hood. For example, maybe you can specify only the internal name and Central Station will grab the other fields (except Dialogue) from Data/Characters. That would certainly make it easier to add mod NPCs to the central station.

lucid iron
#

is dialogue the regular dialogue asset

#

string string with keys

uncut viper
#

what would it do if it chose, say, Abigail but her schedule put her somewhere else

#

wouldnt a mod NPC have to account for the possibility of being chosen on a random day they cant control

ivory plume
#

Dialogue is a list of dialogue lines to show in the central station; see the tourist docs.

#

You can set a Condition to decide when your NPC is eligible to appear, but this would add a temporary non-villager NPC (it wouldn't move the real NPC if they already exist).

uncut viper
#

so i could pass by Abigail on the way to the train, hop on, get to central station, and see Abigail again?

tiny zealot
#

no different from passing her on the way to the mines and finding her on floor 20

ivory plume
#

Yep! Just like in vanilla you can see Gunther in the movie theater, then go straight to the museum and see him there too.

uncut viper
#

tbf thats impossible for me to see anyway as i play multiplayer exclusively

#

(the Abigail thing i mean)

gentle rose
#

can we name the tourist who's retired Jatra

devout otter
#

Oh, might as well ask something that has been worrying me for a while. If I were to add like, 30 dummy NPCs with zero schedule just to have their portraits, would that be taxing to the game?

latent mauve
#

don't suppose anyone knows which tilesheet the spouse portraits are in off the top of their head?

uncut viper
#

junimo_furniture

#

in TileSheets

latent mauve
#

thanks Button

ivory plume
devout otter
#

Noooo. 😔

gentle rose
#

yay the bus station works now aSDVpufferparty

latent mauve
#

Dolphin, what portraits are you wanting?

devout otter
#

Thank you for the explanation. I'd need to rethought how I did some things, then.

latent mauve
#

Would it be more reasonable to create them as custom paths instead?

#

^ just realized you likely mean dialogue portraits

devout otter
latent mauve
#

ah, gotcha

gentle rose
#

I'm curious right now about the Owners field for the permanent shops, though it doesn't seem to be implemented yet so I'm guessing it's either coming later or a tentative design?

latent mauve
#

Shopkeepers use the custom portrait path which is why I got confused

gentle rose
#

unless it's a normal part of shops that I don't know about

latent mauve
#

Because I've absolutely used it for adding portraits for the bookseller and traveling cart lady already

#

_>

gentle rose
#

yeah I should really start assuming that, shouldn't I

#

ty button SDVpufferheart

gentle rose
#

so if a location isn't unlocked, does the ticket counter not get put in at all? like the desert doesn't seem to have one if I warp there before I unlock it SDVpufferthinkblob

lucid iron
#

how frequently is npc appearances checked think

#

like are they only able to change clothes when they change map

gentle rose
#

I sense crime in that question

lucid iron
#

no im doing less work for myself

uncut viper
#

yes

lucid iron
uncut viper
#

you can call the function manually whenever you want

lucid iron
#

nice i slacc too

uncut viper
#

but they only call it themselves when they change map

lucid iron
#

you speak as if abby is sentient

uncut viper
#

also their appearance isnt synced so if you update it manually it wont change for farmhands

#

or rather like

gentle rose
#

I don't see a ticket machine in the desert after I unlock it either SDVpufferthinkblob

uncut viper
#

it might be synced but it got overwritten like immediately

#

when the farmhand did its UpdateAppearance check

lucid iron
#

yea

#

the reason why i ask is cus i am doing an analogous system for trinkets

devout otter
#

Desert doesn't have ticket machine, does it? You just go inside the bus.

gentle rose
#

bus only takes me back to town, not central station

devout otter
#

Aa, in context of Central Station.

gentle rose
#

same with the boat from ginger island it seems, you can go to those places from central station but you can't directly get to it from them

nova gale
#

I've been away all weekend so I hadn't had a chance to test until today, but fyi, so far the Color field on item spawn rules added in 1.6.9 doesn't seem to function (I've tried RGBA as a space delimited field, as a hex code, as a name, both with and without the copycolor flag. (copycolor: true does work, but it ignores the color field on the spawn rule and instead respects the tags on the input item). I'm going to decompile stardew valley again and see if I can spot the reason

winter dust
#

I think I've asked this before but I can't remember, can I make a building repairable like the beach bridge? Give some materials to fix it up.

nova gale
#

wouldn't that just be an action, then an event and map edit?

vernal crest
#

Or Unlockable Bundles

winter dust
#

Not sure, I guess I should look into it more. Didn't think it'd be that simple.

nova gale
#

I would think that's how you would do it, but maybe not

#

maybe an action like that can't take items from the inventory, that could be the limiter

brittle pasture
#

someone with a pc pls fiz the wiki

nova gale
#

oh, if that works I'll see if I can update the wiki

winter dust
#

Where's it listed.

gentle rose
#

@ivory plume when the Willy's boat repair quest is in progress, Central Station prevents it from being completed by preventing the batteries from being donated to the ticket stand (and also preventing the ticket stand from showing the dialogue regarding what materials are needed, which is important since this does not go in the quest journal)

(Screenshots: interacting with the ticket stand with or without the battery packs in inventory, interacting with the anchor with the iridium bars in inventory, interacting with the anchor without the iridium bars in inventory)

nova gale
winter dust
vernal crest
#

But it's Pathos's mod

uncut viper
vernal crest
#

And Pathos is not CA

gentle rose
winter dust
#

Ahh, I thought you pinged ConcernedApe, sorry.

gentle rose
#

regardless, this is the mod pathos himself is sharing for people to try and test, so this is the correct location with bug reports, not the forums 😅

winter dust
#

I know, I just said I thought you pinged CA.

winter dust
pine canyon
#

Does anyone know what he want?

slender badger
vernal crest
#

Or even one of the non-modded channels if you're not playing with mods

tiny zealot
#

pretty sure that's not vanilla trash bear 😅

brittle pasture
slender badger
#

They're definitely using mods, that's a mod-added item and a retextured trash bear SDVpuffersquee

vernal crest
#

Oh yeah haha

nova gale
#

I'm testing now Aeywoo, but thats what Selph said, yeah

vernal crest
#

Actually that's quite cute, I should find that trash bear retexture

ivory plume
slender badger
vernal crest
#

I discovered the LA thing by accident and I was so relieved because I had NO idea what trash bear was asking me for (it ended up being paella)

ivory plume
vernal crest
#

I spent weeks just unable to tell what it wanted lol

nova gale
#

yup, that was it! thanks Selph!

vernal crest
gentle rose
#

also, pathos, was there supposed to be a ticket stand in the desert? or are you supposed to be able to get to the desert but leave via bus?

gentle rose
#

(either way is good, I'm just not clear on which it's meant to be)

ivory plume
#

Currently there's no ticket machine in the desert or Ginger Island, since you technically got there via Pam/Willy; you'd need to have them bring you back, then you can go to Central Station from there.

slender badger
nova gale
#

yeah, it would be in Item spawn fields

gentle rose
#

that makes sense!

vernal crest
ivory plume
gentle rose
#

Time to console command the boat fixed mail in so I can try out the going from central station to ginger island SDVpuffersquee

nova gale
#

(although interestingly, adding objectcolor seems to have removed the stack size! I'll work on that tomorrow, gotta head to bed)

gentle rose
#

I wonder what the most cursed central station stop condition I can come up with is SDVpufferthinkblob doesn't BETAS define some fun new GSQs--

lucid iron
#

RANDOM

#

sometimes the bus come sometimes it dont

#

just like irl

gentle rose
#

I thought about random, and it's good, but we can do better SDVpufferthinkblob

languid aurora
#

raining in winter

uncut viper
#

theres one for whether or not you are currently swimming

gentle rose
#

a certain npc is in a completely different location? (using BETAS)

#

see I assume you can't interact with machines while you're swimming but I'll admit I never tried

uncut viper
#

why WOULD you assume that though

gentle rose
#

I keep hitting enter by accident SDVpufferwaaah

lucid iron
#

it occur to me that

#

i been using bool? as tristate

uncut viper
#

you can gate a location behind perfection progress with BETAS, or how many empty slots you have in your inventory, or whether or not its a farmhands anniversary

lucid iron
#

instead of making an enum

gentle rose
#

player speed + random = true bus experience of sprinting to the bus that came in halfway between two scheduled times

uncut viper
#

tbh using bool? as a tristate sounds like something id do

#

out of laziness

uncut viper
gentle rose
#

oh there's one for having split wallets in multiplayer. take the bus only if you have your own money, thief

lucid iron
#

is there a location has monsters gsq

uncut viper
#

thatd just be handled by their own money

uncut viper
faint ingot
#

If I want to set a mail flag but not actually send a letter, I don't have to add anything to Data/Mail, right?

uncut viper
#

correct

gentle rose
#

there's one for if a location has furniture

uncut viper
#

just send it to the received mailbox

uncut viper
gentle rose
#

...if farmhouse has no furniture, open up a bus line to a furniture shop SBVLmaoDog

uncut viper
#

there is LOCATION_HAS_NPC which if you dont specify a name will just check if there is any NPC in the location, including monsters and pets

lucid iron
#

huh neat

uncut viper
#

if you specify a name though it will only check NPC names

lucid iron
#

i was thinking of making like

#

IsCombat

uncut viper
#

this wasnt the intended behaviour really or else i woulda handled monsters better maybe

gentle rose
#

the bed probably always counts as furniture though I'm guessing?

uncut viper
#

beats me

lucid iron
#

this is to be defined as "dealt or taken damage in the last 5 seconds

gentle rose
#

what other mods add gsqs SDVpufferthinkblob

lucid iron
#

the reasoning is that some maps r hella big and full of monsters but u r not in combat all the time

#

(this is not a GSQ)

uncut viper
#

hmmm

#

you could maybe do that with BETAS... maybe

brittle pasture
#

I don't think it's anything

uncut viper
#

BedFurniture inherits from Furniture

lucid iron
#

i already have OnReceiveDamage/OnDamageMonster so its pretty easy to just

lucid iron
#

timer that one blobcatgooglyblep

#

its more like, whether it makes sense

uncut viper
#

you could definitely set a timer with DelayedAction

#

to set a player stat

brittle pasture
#

no isnt the base farmhouse bed just a tile action of am I misremembering severely

uncut viper
#

tho you dont have a way to cancel one if you keep doing damage

lucid iron
#

its hardcoded

gentle rose
uncut viper
#

i dont know if its a tile action but i know for sure the game adds a BedFurniture object to the farmhouses furniture list

lusty elm
#

It used to be a simple tileaction, now its coded into the bed to make it movable

lucid iron
#

a lot of mods add random ass GSQs though

lusty elm
#

i think there is a property to make a map or area considered as safe, so if you pass out there nothing happens, there is probably one for setting up an area to sleep as well?

brittle pasture
uncut viper
#

i will absorb them all and become the biggest GSQ cake /j

gentle rose
#

(dw I used the governor command haha)

uncut viper
#

tbf i also have a hyper specific GSQ that is literally only usable in one exact place and in conjunction with one specific trigger from BETAS

#

Spiderbuttons.BETAS_ITEM_ENCHANTMENTS

gentle rose
#

but why is custom tapper framework MTF? CB_pika_think

lusty elm
#

Back TouchAction Sleep Ends the day if the player confirms. so that does exist.

lucid iron
#

i have GSQs specifically for putting trinkets in machines and one about equip only X number of them across all players

uncut viper
#

oh yeah my book mod also adds an undocumented secret GSQ