#making-mods-general

1 messages · Page 344 of 1

rigid oriole
#

Sounds kinda like a use for machine control panel?

brittle pasture
#

why cant you targetfield that patch from SVE Forage Crops?

empty vector
#

It has the same Output Rule and Output Item as Artisan Machines and I use the same Triggers, RequiredItemId, but I could definitely be missing something

#
            "Action": "EditData",
            "Target": "Data/Machines",
            "Priority": "Late",
            "When": {
                "CornucopiaCompat": true,
                "HasMod |contains=Cornucopia.MoreCrops": true,
                "HasMod|contains=Cornucopia.ArtisanMachines": true
            },
            "TargetField": [
                "(BC)15",
                "OutputRules",
                "Cornucopia_PickleSpears",
                "Triggers"
            ],
            "Entries": {
                "(O)FlashShifter.StardewValleyExpandedCP_Cucumber": {
                    "RequiredItemId": "(O)FlashShifter.StardewValleyExpandedCP_Cucumber"
                }
            }
        },```
Theirs
brittle pasture
#

in your own patch that runs afterwards (either via false dependency or later priority), target that Trigger and edit the RequiredCount

calm quiver
#

Parsing these images takes soooo long

#

I think I did 80+ of them this morning while also doing minor edits

empty vector
wise forge
#

I'm so lost, I still can't get the texture to show up in game (shipping bin error status now)

empty vector
#

Also I tried a bunch of different things and none of them worked so I'm gonna post what I did first and hope it was an easy to fix mistake

            "Action": "EditData",
            "Target": "Data/Machines",
            "TargetField": ["(BC)15", "OutputRules", "Cornucopia_PickleSpears", "Triggers"],
            "Entries": {
                "(O)FlashShifter.StardewValleyExpandedCP_Cucumber": {
                    "RequiredItemId": "(O)FlashShifter.StardewValleyExpandedCP_Cucumber",
                    "RequiredCount": 3
                }
            },
            "When": {
                "HasMod|contains=FlashShifter.StardewValleyExpandedCP": true,
                "HasMod|contains=Cornucopia.MoreCrops": true
            }
        },
#

I tried to change it to Fields but Smapi says [Content Patcher] Can't apply data patch "Stardew Valley Balance Overhaul > Include mods/Cornucopia Artisan Machines.json > EditData Data/Machines #22" to Data/Machines: there's no record matching key '(O)FlashShifter.StardewValleyExpandedCP_Cucumber' under Fields.
and that's with priority late

wise forge
brittle pasture
#

or late + 1

#

also TargetField one layer deeper

#

and change only the RequiredCount

empty vector
# brittle pasture also TargetField one layer deeper
            "Action": "EditData",
            "Target": "Data/Machines",
            "Priority": "Late +1",
            "TargetField": ["(BC)15", "OutputRules", "Cornucopia_PickleSpears", "Triggers", "(O)FlashShifter.StardewValleyExpandedCP_Cucumber"],```

When you say TargetField one layer deeper is this what you mean?
brittle pasture
#

yes

empty vector
#

[Content Patcher] Can't apply data patch "Stardew Valley Balance Overhaul > Include mods/Cornucopia Artisan Machines.json > EditData Data/Machines #21" to Data/Machines: the field '(BC)15' > 'OutputRules' > 'Cornucopia_PickleSpears' > 'Triggers' > '(O)FlashShifter.StardewValleyExpandedCP_Cucumber' doesn't match an existing target

brittle pasture
empty vector
#
            "Action": "EditData",
            "Target": "Data/Machines",
            "Priority": "Late +1",
            "TargetField": ["(BC)15", "OutputRules", "Cornucopia_PickleSpears", "Triggers", "(O)FlashShifter.StardewValleyExpandedCP_Cucumber"],
            "Entries": {
                "RequiredCount": 3
            },
            "When": {
                "HasMod|contains=FlashShifter.StardewValleyExpandedCP": true,
                "HasMod|contains=Cornucopia.MoreCrops": true
            }
        },```
For this?
sweet wharf
#

So, I'm here trying to play my game with the mods I have downloaded, and everything was working fine, but my mods just suddenly disappeared from the smapi window when the game starts up so if anyone could help, I would be grateful

latent flame
sweet wharf
#

Okay, thanks

brittle pasture
empty vector
brittle pasture
#

hmm, I see the problem
the Id for all 3 of the trigger is "ItemPlacedInMachine", because none of the patches specified a specific Id
this could be difficult because you have no way of specifying which trigger you want to patch with CP

#

I suppose you can target array index, but that might be fragile

#

I think the flow currently goes

  1. Cornucopia adds its pickle spears rule
  2. The SVE forage mod adds a 2nd trigger
  3. Your mod edits the 2nd trigger
#

then you can target "#1"

#

which will hit the second trigger

brittle pasture
#

do check with a new export to make sure your change is in

brisk wedge
#

I am completely new to CP, is putting a HasFlag |contains=flagid entry the dict of a a When for an Action: EditData valid?

#

wait nvm hot reloading is a thing for cp right

brittle pasture
#

!hotreload

#

!reload

ocean sailBOT
#
How do I reload my changes while I'm still in game?
  • Content Patcher pack: enter patch reload <your_mod_id> in the SMAPI console window. This will reload and reapply all your patches (but won't recalculate the ConfigSchema or DynamicToken sections if you use them).
  • Translation files: enter reload_i18n in the SMAPI console window. If it's for a Content Patcher pack, also run patch reload afterwards.
  • C#: see the Visual Studio hot reload or Rider hot reload feature.
wise forge
#

....I wish I had known that was a possibility LOL

#

Ah, well. 87 game reboots later 🤣

empty vector
#

Checked the Data/Machines too and it looks fine too
I'll try to remember that # targets a specific thing according to order, should be really useful

dusk terrace
#

System.ObjectDisposedException: Cannot access a disposed object.
Object name: 'Can't draw texture 'Portraits/Mariner' because it's disposed.'.
what could it mean if a texture is disposed?

lucid iron
#

Are you Loading that

dusk terrace
#

I'm not, it should be getting the texture from either the Dialogue object or the NPC directly

pine elbow
#

im gonna leave off making mods until after ive finished the c sharp mod

#

someone reccomended that

#

and since i still dont know where to start i think that sbest

#

also the love of cooking mod gives me alot of weird errors

calm nebula
pine elbow
#

sigh its so dissapointing

marble verge
#

Evening. Where can I find the id for the Desert Festival, to use with IS_PASSIVE_FESTIVAL_TODAY?

uncut viper
#

Data/PassiveFestivals

marble verge
#

Grazi!

drowsy minnow
#

trying to create color palletes frustrating me frfr
||(im using ibis on my phone and the slightest off touch with the dot pen places it elsewhere instead of where needed)||

wise forge
#

FOLKS, WE HAVE A SHIP

#

Thank y'all so much for your help!! 🥰

formal crown
ocean sailBOT
#

Log Info: SMAPI 4.1.10 with SDV 1.6.15 build 24356 on Microsoft Windows 10 Home Single Language, with 38 C# mods and 21 content packs.
Suggested fixes: One or more mods are out of date, consider updating them, SMAPI is out of date, consider updating it

#

Log Info: SMAPI 4.1.10 with SDV 1.6.15 build 24356 on Microsoft Windows 10 Home Single Language, with 38 C# mods and 21 content packs.
Suggested fixes: One or more mods are out of date, consider updating them, SMAPI is out of date, consider updating it

dusk terrace
#

same with Portraiture

uncut viper
formal crown
#

Well, nothing

#

That's the problem

uncut viper
#

its a very important distinction to be made though is why i ask

#

whats the code for the custom chest look like

#

(my thought was that if you were always trying with the host first, it mightve been the host requesting a mutex and never letting it go)

formal crown
#

I'm not using a custom object class if that's the question

uncut viper
#

it is not. i dont know what you're doing to make a custom chest

#

so if its json or C# or whatever it is, whats it look like/whatre you using

#

(are you going to ask for your role back again now atra)

formal crown
#

First code bit is in OnButtonPressed event, the second is from a harmony patch to SObject.placementAction

uncut viper
#

because now you can have gradient mod author

formal crown
calm nebula
#

I like these colors better

formal crown
#

(How do you get these gradient names, btw?)

uncut viper
formal crown
#

No

uncut viper
#

how does the main player open it then?

formal crown
#

🤷‍♀️

uncut viper
#

im just wondering what the reason is for having a buttonpressed event specifically for the non-main player

#

for opening it

formal crown
#

Well, I tried to fix it, cant say it worked

#

(I use the buttonpressed for a lot of other things)

uncut viper
#

does that mean this buttonpressed thing wasnt there when you originally noticed the issue

formal crown
#

Yep

uncut viper
#

ahh, i thought you were doing like, right click detection to determine when they clicked on a Custom Thing

formal crown
#

I normally do, and tried it here too but it didnt help 😅

clear bough
#

Is it possible to edit the homes of custom NPCs? I have three NPCs I want to do this for—Wilford, Jade, and Isaiah. Instead of their homes I was thinking they could live in the Pelican Valley apartments that firedlily made.

uncut viper
#

is the farmhand log from before or after the buttonpressed thing was added? does the "????" debug logging ever show? if not, what if you make the "success" action of the mutex request some different logging (instead of ShowMenu) to see if that runs?

formal crown
#

After

#

It showed up before I put it inside the requestlock, but I'll try again just to make sure

tame surge
uncut viper
#

i dont know if it'd help or if its even necessary at all either, but maybe a GetMutex().Update(GameLocation) right before that code

#

im just focused on the mutex bc well, im like 95% sure thats where the issue lies, or something related to mutexes. maybe Chests Anywhere

#

so id also remove that mod for testing

#

(mutices?)

formal crown
#

Do you mean that Chests Anywhere could be interfering?

uncut viper
uncut viper
#

just better to eliminate as many variables as possible

clear bough
pine elbow
#

thank you stardew community for welcoming me i am making potato salad mod

wise forge
#

my next venture may just be an unlockable bundle version of the pirate ship.... idea courteousy of my spouse, heh

twin wadi
uncut viper
uncut viper
#

it just isnt as simple as "change their home location" bc if they have events in their old home location or around their old location, then those need to be changed, but how exactly you change them is not somethiung that can be guided since... its an event written with the other location in mind

#

schedules would be easier, but it depends on the scheudle and where theyre set to go, which is very specific to each NPC

formal crown
#

Nope, it didn't help

#

Neither of the success or fail messages are triggered, but the block still runs

#

I dotted out both Automate and Chests Anywhere

pine elbow
#

is their a sprite design tutorial

uncut viper
#

going off that code snippet you sent, if neither the fail or success messages run, then it must not be getting the mutex at all, which means its probably not seeing that value is a Chest bc of the ? nullability thing

#

i assume if you removed that ? you'd be getting an NRE instead

#

as for why it doesnt see value as Chest, i dunno. i dont know how Chests work when placed

formal crown
#

I'll try something about it

uncut viper
#

also, what happens if you change true to false in your placementAction patch when placing the chest, to make it not a playerChest (whatever that means)

#

was it always the host that placed the chest in your testing?

formal crown
#

No

#

I've tried with both host placed and farmhand placed, result is the same

formal crown
calm quiver
#

Whyyyy are springobjects not sorted by category OR alphabetically?

#

Whyyyyyy

rough lintel
#

because thats just what they be doin

calm quiver
#

I think this is going to take all day 😭

formal crown
#

The main idea of that chest is when you exit the chest menu, it sends all its contents (except tools) to a specific building that should be built on your farm, so everyone should be able to place things into it

gentle rose
#

(to make a long answer short, it’s because things go wherever they fit, and even if they were initially sorted using some sort, both the information about objects and the number of objects themselves gets changed between different drafts of the game and different versions of the game and you can’t just rearrange them each time)

rough lintel
rough lintel
#

no need to reinvent the wheel if the patch/code exists already

pine elbow
#

is theiry any sprite making tutorial

calm quiver
#

Right now I'm doing an action for every sprite replacement

rough lintel
#

if you download vanilla tweaks. there is sprites in the folder. replace them with yours

uncut viper
# formal crown The main idea of that chest is when you exit the chest menu, it sends all its co...

unfortunately i do have to go for a bit, but i would still try looking into why it seems like your requestlock isnt doing... anything at all, so double checking whats happening to value and making sure you spelled the qualifieditemid you're checking for correctly, etc etc. i know "double check things and make sure they arent null" isnt exactly helpful, but if its not even getting to the mutex part, im mostly just drawing blanks besides that without being able to see the entirety of the code

calm quiver
#

Or like, soon actually

formal crown
#

It's okay, we tried SDVpufferheart

#

The only idea I have is that I'm both the host and the client

uncut viper
#

(a real programmer would probably tell you to use a debugger, but i instead like to go for "put a debug logging statement after every single line" myself)

formal crown
#

Like what if this is causing some UniqueMultiplayerId confusion in the game

gentle rose
#

why debugger when debug logging lines are free

rough lintel
calm nebula
#

My guess is that your block is never being entered

formal crown
#

Well, it IS being entered

calm nebula
#

Also if you want to do it a different way just use the exit function on item grab menu

calm quiver
gentle rose
#

I wouldn’t just take an entire mod’s content patcher json without permission for a project as big as this, so maybe ask Tai first?

rough lintel
#

but you will probably want to delete parts youre not going to utilize

formal crown
#

Request lock method just. zzzz

uncut viper
#

that specific if block though? bc you didnt have any logging in there besides the requestlock, so how are you verifying it

calm nebula
formal crown
rough lintel
#

if you want to rip coordinates of where items are, i dont see why not

tawny ore
#

@formal crown I'm not all caught up on the message history here, but are you already using a GlobalInventoryId for your chest?

formal crown
#

No

tawny ore
#

That simplifies some of the mutex/location stuff when it comes to farmhands

formal crown
uncut viper
#

if the contents are meant to be whisked away anyway it probably is a good idea, since the contents being shared across all of the same chest dont matter in that case

pine elbow
#

how do i design my own sprites

rough lintel
#

considering airyn and i wrote the vt code i think i can recommend this as a starting point 💀

tawny ore
uncut viper
#

its just a global inventory not linked to any specific chest, but you can place its inventory as a chests inventory

formal crown
#

It's a building though, not another chest SDVpufferthinkblob

gentle rose
#

ah, I see SDVpuffersquee my bad, lani!

tawny ore
#

Otherwise, you deal with chests having to be in a tickable location, which may or may not be the case for farmhands

rough lintel
#

all good iro lol

tawny ore
#

GlobalInventoryId can be linked to any chest or building chest for that matter, you can use multiple - one for each minecart, one for each building

uncut viper
gentle rose
#

(I’m more all over the place than usual today lmao)

uncut viper
#

just a list of items

rough lintel
#

i rip vt code all the time when i dont feel like doing item patched for shit bc i HATE finding coordinates

calm quiver
formal crown
#

I'm making sure there's always one of that building exists so I don't have to make player choose inventories

rough lintel
#

its all labeled and nice too so i just strip it down to barebones and use what i need

tawny ore
#

A global inventory is just an arbitrary list of items that you can access from anywhere, but can also be linked to a chest (i.e. the chest opens the global inventory instead of its own storage)

rough lintel
formal crown
#

I shall try that right away

uncut viper
#

(global inventories my beloved, thats how Custom Museum Framework handles donated items)

rough lintel
#

but yeah dawson. just lift the coordinates per item in the content json

#

i wouldnt directly copy folder structure bc thats not learning

calm nebula
#

If the new chest block is entered that chest doesn't have a tick-able mutex (and also doesn't need onr)

calm quiver
calm quiver
#

Also apparently json will ignore comments? It says it doesn't 'support' them but VT uses it so I guess it doesn't break anything?

tawny ore
#

SMAPI JSON is more like JSONC (JSON with comments)

uncut viper
#

closer to json5 id say, not that most modders care about the distinction

tawny ore
#

If your editor supports jsonc, you can make that the default for json files, and it won't report the comments are errors

uncut viper
#

(but i personally love doing cursed things in my test mods like not using quotes around my key identifiers)

crisp drift
#

Hi everyone, this is probably a very basic question, but is there an easy way to use a specific item that has variants (like Apple Jelly for jellies) in a recipe? The / in the qualified ID seems to be messing things up. I thought escaping it might do the trick but didn't work

cloud flume
#

Hey

brittle pasture
brittle pasture
#

vanilla recipes only accept exact item IDs, and every jelly item have the same IDs only with different flavors

formal crown
#

How should I add a GlobalInventoryId?

tawny ore
#

Is your chest actually placeable? Or is it associated with something that your mod puts into a location?

#

Because you don't even necessarily need a chest

haughty charm
# pine elbow how do i design my own sprites

Hello! If you're wanting to do pixel sprites, you'll need a program that allows you to do that (if you don't already). I'd recommend looking at the vanilla sprites to get a sense of scale and lighting - you can unpack the game assets to get those.

calm nebula
#

That block makes a chest that only exists in that block

#

So no one else can access the inventory anyways

#

Tbh I agree with matt

tawny ore
calm nebula
#

You don't need a chest

#

Or an inventory

#

You just need an item grab menu

crisp drift
formal crown
#

Technically I'm not putting it in:
I've got a building and a chest. Player will be able to carry the chest around, to occasionally put their things inside the chest and it'll warp them to the building's inventory. (Spesifically targeted to be used in the mines/SC) The building is also built from Robin's, but the limit of only one.

brittle pasture
thorny tiger
#

ok i need a hand with event json, is there a way to trigger a machine prop inside an event? ive spawned a modded bigcraftable (basically a furnace) and id like the furnace to turn on during the event, how should i do that

brittle pasture
#

probably temporaryAnimatedSprite time

uncut viper
thorny tiger
#

wow that is daunting

calm nebula
#

The global inventory ID would be used if you wanted to sync items between players

uncut viper
#

i would. it's practically free to do and leaves the door open to do other things with the inventory later

calm nebula
#

You just want to grab things into a menu to send them off

uncut viper
#

and kedi said it won't transport tools

#

So you don't want it to disappear with your tools in it

calm nebula
#

It's synced. That's unwanted behavior

#

Unless your global inventory has the player unique ID in it

formal crown
#

Yeah, otherwise if you accidentally put your sword or pickaxe and then it flushes all the stuff, what will you do?

calm nebula
#

You sinply ban that

#

In the highlight function

#

(Vmv chests do that btw)

formal crown
#

Wouldn't this make it more complex?

calm nebula
#

I mean

uncut viper
#

writing a highlight function is not difficult

#

CMF also does this

calm nebula
#

What you have doesn't work?

uncut viper
#

But it depends on if you still want to allow them to STORE the tools

#

Even if not transport them

#

I'm not sure why it being synced is unwanted either

formal crown
uncut viper
#

how large is the building inventory that it's being sent to, anyway?

calm nebula
#

And do you want this to be synced to every player

formal crown
#

As large as a big chest inventory-wise

#

It's supposed to be a big mining repository

uncut viper
#

is there reason to not skip the middleman and make the building inventory itself linked to the global inventory?

calm nebula
#

Send but do you receive

formal crown
#

I thought that's what using global inv ids meant

uncut viper
#

if the building inventory is linked to it then you're not transporting anything

#

the item would be opening the building inventory directly

calm nebula
#

I'm really confused as to what the feature is

#

I was thinking "send mining goods to a building for later retrieval"

formal crown
calm nebula
#

(If you're gonna do that also check out the global mutex)

#

Can I build more buildings for more space

formal crown
#

No

#

You can have only one of it

calm nebula
#

What happens to items if the space is full

uncut viper
#

(that said, in order to get the vanilla item grab menu to have big chest capacity, you need to construct a big chest in the c# at some point anyway...)

formal crown
#

(So I don't have to manage multiple buildings or multiple building chests)

#

Actually, changing SpecialChestType to BigChest seemed to be enough

uncut viper
#

really? hm

#

did you already pass in a normal chest as the source item?

formal crown
#

I'm not sure wdym

uncut viper
#

in the item grab menu constructor

formal crown
#

Uhh, let me check

calm nebula
#

Scrollbars

tawny ore
#

you can simply just create a single chest instance that is never placed anywhere, do chest.GlobalInventoryId = "YourId" and then do chest.ShowMenu() and the game will handle everything else for you

formal crown
lucid iron
#

Yee

uncut viper
#

tomato, tomahto then

calm nebula
#

Tbh i personally would do my own menuing for a feature like this

uncut viper
#

what Matt said is what I meant, I just don't like that I have to do that and can't just set the capacity in the constructor

uncut viper
#

So CMF has a custom BigItemGrabMenu

lucid iron
#

It's like fine i guess still kinda meh

#

In trinkets i subclassed ItemGrabMenu

tawny ore
uncut viper
#

(in my case I made my menu have 108 slots for very little effort)

tawny ore
#

Like, sure doing everything completely custom will get things working exactly the way you want, but instead of spending all of that time, you can focus on other things that are probably more important.

calm nebula
#

Especially if there is actually a space cap

lucid iron
#

Precise control of slot counts was important to me in trinkets but not in mmap

formal crown
lucid iron
#

Just do whatever fits y'know

tawny ore
#

Even with doing a chest instance, it's super easy to assign a custom capacity with a single patch

#

So you can still have that functionality with almost no effort

uncut viper
#

I'm not saying your way is a lot of effort but I will say I think you're overestimating how much work it is to subclass ItemGrabMenu and adjust in there

formal crown
#

Honestly, I think I'll switch to use the global inventory ids, but keep the physical chest too. I'll look into it further tomorrow after my last endterm ( SDVpufferparty )

#

Where do I need to create the id? SaveLoad?

uncut viper
#

on demand

#

it's GetOrCreateBlaBla so if it doesn't exist when they go to open the chest it'll be made

tawny ore
#

With a chest instance it's automatically created when you do ShowMenu

calm nebula
#

Tbh the point of the custom menuing would just have been to allow myself to look at what exists in the inventory already

tawny ore
#

Or when you do GetItemsForPlayer

calm nebula
#

Overflow is awkward otherwise

#

Ie, how do I know what I can fit if I don't know what is in there

thorny tiger
#

am i missing something obvious to let me make a machine pulse like it usually does while working with temporaryAnimatedSprite

formal crown
#

What happens you have items in the global inventory, but haven't retrieved them before sleeping and quitting?

tawny ore
tawny ore
#

So there's some additional piece of mind that players aren't going to accidentally lose their items

formal crown
#

So it's not lost? SDVpufferwow

uncut viper
#

its a chest without the chest (unless you add the chest)

#

its saved and handled all fine and safelike

tawny ore
#

Global Inventory is basically just a List<Item> that's synced and saved automatically

lucid iron
#

Safelike Insurances

tawny ore
#

It's the same thing Junimo Chests use to store their items

lucid iron
#

Also they get different flavor of mutex to use

merry rampart
#

How do I get an event to trigger in an area after obtaining a flag to trigger it without having to leave and reenter the area?

uncut viper
#

spacecore

tawny ore
merry rampart
#

kk thx

uncut viper
#

using its PlayEvent trigger action action

lucid iron
#

Vanilla has the tile action

#

But y'know it's a tile action player's gotta touch

uncut viper
#

and would need to be there all the time

formal crown
#

Goodnight all SDVpufferheart SDVpufferchicknight

calm nebula
tawny ore
# calm nebula If the goal is a one way send yeah

In that case, I'd probably just let it unload as many as it can, and allow the rest to remain in the cart. That seems like it would be expected behavior. And if you really wanted remote access there's always ChestsAnywhere.

twin wadi
#

can i make a tile message have multiple messages? like, when you first click, it says, "fmdjaskfmsk", then it acts like #$b# in dialogue, so you have to click again for the next message

#

my explanation is bad lol

calm nebula
#

Gotta have like

#

100+slots

uncut viper
tawny ore
#

If you're going to have 100, may as well just have unlimited

lucid iron
#

Do consider the fact that it's a bit unexpected for player

brisk wedge
#

In stardew ui is there a way to reset scroll to the top? Like I have a repeat and then I change the list but the scroll is still at the bottom even tho its a different list, like

 <scrollable>
  <lane orientation="vertical">
    <frame *repeat={listThatIChange}
twin wadi
#

thanks btw!

idle lantern
#

'HasMail', does that need to be 'HasSeenMail'?

thorny tiger
#

if anyone has the slightest idea how youd make a machine prop pulse in an event please let me know i just want abigail to cook some refined quartz

uncut viper
#

(note: i do not know how to do this)

calm nebula
#

(Tbh, in general, I hate the idea of "well I guess jt works?")

#

I would rather make it right even if it takes me more time

#

Ofc, that's why I don't mod anymore lol

tawny ore
#

I don't equate complexity to superiority. Sometimes simplicity can be a favorable result, especially when you want things to work well with others.

lucid iron
idle lantern
#

bah still no dice

lucid iron
uncut viper
# idle lantern bah still no dice
  1. like Chu says, you'd use Condition instead of a When condition
  2. if you used a When condition, you'd need it to be outside your Entries, not inside it like you have there
idle lantern
lucid iron
#

When i did pagination i just lived with not going to the top by default and areanged ui

idle lantern
#

I saw Chu's message right after I posted the image, sorry

uncut viper
#

(nothing to apologize for, just wanted to let you know why your When condition wasnt even applying, too)

calm nebula
lucid iron
#

They first one controls cp data edit happening or not

brisk wedge
#

sorry what do you mean by areanged ui (i assume you mean rearraged?) like change it so that you just show everything and not need a scrollable?

calm nebula
#

And certain game menus - like item grab menu - I kinda find hard to use because of how weird they are

lucid iron
#

The second one is used by game in whatever context, shop items in this case

lucid iron
#

Basically you gotta ask yourself what the usecase is

idle lantern
#

got it! ty!!

calm nebula
uncut viper
#

in my case i just... abandoned making it scrollable and limited the number of items per page per page

#

(re the stardewui stuff)

calm nebula
#

Things are automatically added to the bottom

lucid iron
#

For me i just put the paginating buttons outside of scroll area

#

So that it's always usable

#

As for search it didn't really bother me that searching didn't bring me to top cus

#

Eventually u search narrow enough to stop having scroll

brisk wedge
#

I'm showing a list, but I decided to paginate cuz its pretty big, but with the number of items you still need to scroll for each page, so I'm deciding whether to show a smaller number of items per page or just have the scrollbar not reset when you go to the next page

lucid iron
#

Yeah i went with B

#

Mostly cus the vision was always "no page only scroll" and pagination is a compromise for perf reasons

uncut viper
#

i went with A. the choice is now yours, cat. be the caretaker of your own destiny

#

tiebreaker round

twin wadi
#

how do you format multiple actions for a single map tile?

lucid iron
#

You can't

uncut viper
#

alternatively ask people in here or modded farmers what theyd prefer as a user

lucid iron
#

Need some kinda framework

uncut viper
#

you can use spaceore for it

lucid iron
#

What's the goal here tho

uncut viper
#

if you mean tractions

#

trigger action actions

twin wadi
#

im just going to add some npcmessage if they are nearby

#

like sam with the trash can

#

along with a message if they arent

uncut viper
#

sounds like a MMAP thing SDVpufferthumbsup

brisk wedge
#

I think I'm also hitting perf issues? Like the reason I paginated in the first place was because I had lower fps when I showed the full list. Eh I'll decide what to do later

lucid iron
#

Spacecore betas betas then

#

Smh button

uncut viper
lucid iron
#

Ok mmap can do it but it's terrible series of nested ifs

#

U sure u want that instead of just doing it by trigger actions?

uncut viper
#

in my case my performance dropped drastically when i was moving my cursor around outside the list/menu but was much better otherwise

#

if thats the case for you too then its probably the bug. it might be the bug anyway but still

lucid iron
#

Yeah you can try dev stardewui

#

Basically there's 2 flavors of perf problem with scroll

#

One is you have like 10k views in 1 scroll and so it sucks

#

The other one is out of bounds perf is really bad, this one's fixed in head

merry rampart
#
            "Action": "EditData",
            "Target": "Data/TriggerActions",
            "Entries": {
                "{{ModId}}_Intro": {
                    "Id": "{{ModId}}_Intro",
                    "Trigger": "Manual",
                    "Condition": "PLAYER_HAS_MAIL Current CF_Statue Any",
                    "Action": "spacechase0.SpaceCore_PlayEvent 29273001",
            "MarkActionApplied": true
                }
            }
        }```

My event is not triggering and I have no idea why
uncut viper
lucid iron
#

If your problem is having 10k views then just paginate that yea

brisk wedge
#

yeah i think im the 10k views unforunately

uncut viper
#

(2.5 can be ignored if 2 is no)

brisk wedge
#

also is there a way to integrate with lookup anything? like have a frame such that if I f1, lookup anything will come up? I see HoveredItem mentioned in the lookup anything docs but idk how to set hovereditem for stardewui

lucid iron
#

Hacks only for that rn

twin wadi
uncut viper
#

you'd have to reflect into LA to call its method directly right

lucid iron
#

As in patch lookup anything

calm nebula
#

That sounds nightmarish

merry rampart
calm nebula
#

I think I'll become the hand unrolled menu truther

lucid iron
lucid iron
uncut viper
merry rampart
#

Should it not be Manual?

pine elbow
#

Hello, I created a custom pet (set it as a cat breed) and while the pet shows correctly in-game, the icon in the pet menu is cropped.

if i move down the poses in the png file it works but then it shows incorrectly in-game. is there another way to fix it? thanks.

calm nebula
merry rampart
#

what should I put it as?

uncut viper
#

the only usecase i know of for Manual is if you're using Spacecore to do it via tile action

merry rampart
#

Ah ok

#

so I need to put something else

uncut viper
#

whatever condition seems best to you

#

theres LocationChanged, DayStarted, and DayEnding

calm nebula
#

I'm mostly joking

uncut viper
#

"Manual" is for mods that will directly invoke the trigger action when they deem fit

#

if there is no mod to do that then it never happens

#

(also you dont need to set MarkActionApplied, its true by default)

merry rampart
#

I want it to happen immediately

#

None of those options seems to do that

uncut viper
#

well there is no mechanism to do that, no

#

i dont think you have an option there

merry rampart
#

I've seen it done in other mods. I just can't figure out how

lucid iron
#

Like roll your own

#

I was reading it as atra out to eat my menus

uncut viper
#

there is no mechanism to make a trigger action happen immediately upon meeting a condition

#

if none of the triggers in vanilla are quick enough, then your only option is mods, and i dont know of a mod that will provide you with a relevant trigger

lucid iron
uncut viper
#

there is none for reacting to a stardrop being eaten

merry rampart
lucid iron
#

Hrm

#

Is betas menuchanged fast enough for this

uncut viper
#

if another mod did it, they would have rolled their own C#

lucid iron
#

Unclear how to trigger

uncut viper
#

getting a stardrop doesnt open a menu

calm nebula
lucid iron
#

Doesn't it show something like "it tastes like sturgeon"

calm nebula
#

But I could probably scroll 10k items without issue

lucid iron
#

Yeah i think it's definitely fixable (and vanilla shops don't have this problem to begin with)

uncut viper
calm nebula
#

(I'm very joking.)

#

I'm not going to do a menu lol

lucid iron
#

Atra i never figured out the button to show time to frame kyuuchan_run

#

Where is it

uncut viper
#

debug tto?

calm nebula
#

My niche is "I took one function and optimized the hell out of it"

lucid iron
#

Is it event repeater thing

lucid iron
uncut viper
#

debug toggletimingoverlay

lucid iron
#

Oh yeah i did not search for that

uncut viper
#

why do you need to be on a full name basis with your debug commands

lucid iron
#

I thought tt stood for time to and forgor what last letter is

#

No i was just ctrl+f in DebugCommands.cs and didn't find it cus i use wrong keyword clearly

#

The thing i was trying to do is find out how many tas i can have b4 it lag badly

uncut viper
#

(also re: stardrop menuchanged, i dont know if starting an event right when a dialoguebox pops up leads to any weirdness, and doing it after is doable but risks another mod getting in the way, too, by doing stuff in response to that text as well)

lucid iron
#

If it's something like the statue stardrop

uncut viper
#

(but its also not the most efficient thing as you'd need a trigger action being checked every time you open any menu, ever, until you get the stardrop)

lucid iron
#

What if you jail player around the statur

calm nebula
calm nebula
uncut viper
#

id have to patch Set<T>.Add

#

oh, Farmer.mailReceived is a Net sstring hashset. okay, so i guess its technically doable.

calm nebula
#

Exactly!!!

uncut viper
#

is there a r eason i shouldnt actually do that

lucid iron
#

i think it's not that sinful

#

Just do it Sleepden

uncut viper
#

(also, i didnt know that that stardrop actually only lets you get it if you have a free spot in your inventory. seems strange, since im pretty sure they dont actually ever enter it?)

calm nebula
#

(I don't actually think so?)

#

I thought the function that checked inventory space skipped the stardrop

uncut viper
#

i know some things skip counting it as a space-taking object, bc i had to do that for custom lost books too

#

but, this just calls Farmer.freeSpotsInInventory() which simply counts the stacks of things in your inventory

#

no free spot = no stardrop

#

it should instead call Farmer.couldInventoryAcceptThisItem(Item)

#

which will return true for things like stardrops

#

at first i thought it might not bc the part that holds it above your head requires a slot, but lost books do the same thing and dont need it, so idk

#

funnily enough it checks if you have a free spot but then still calls addItemByMenuIfNecessaryElseHoldUp

#

dont know why the menu would be necessary if you have a free spot

merry rampart
#

I think I found a solution to my problem. Esca's Modding Plugins has a time change trigger and I decided that was good enough

uncut viper
#

have you tested it?

merry rampart
#

yes. and it works

#

Getting a stardrop freezes time, so I get the entire message first before the event triggers

uncut viper
#

well, not in multiplayer

merry rampart
#

Yeah, that's the downfall, but oh well...

uncut viper
#

pretty big downfall, as a multiplayuer-only player SDVpuffersquee

merry rampart
#

Until a better solution comes along, this is the best option

#

because at least it does what I want it to

uncut viper
#

i will say ive not completely dissected the specific holditemabovehead functions that result from what it currently does

#

to verify that none of them need it to be in the inventory first

#

okay yeah, the addItemByMenuIfNecessary inside that call stack checks if its a stardrop and if it is, it just makes you eat it

#

so i dont see any reason why it needs to check free spots

calm nebula
#

insert new GSQ: Is_Menu_Currently_Opem

uncut viper
#

well itd be dead simpl to add ofc, but did you have a usecase in mind for that even

latent mauve
#

Did anyone ever figure out if there is a GSQ to target something to happen after feeding the Sweet Gem Berry to Old Man Cannoli?

#

(like setting a map patch or similar)

calm nebula
#

Well, there is a mailflag

uncut viper
#

thats what we were discussing earlier and Jen found a solution for

latent mauve
#

Oh, good, there was something that came from that.

uncut viper
#

and by earlier i mean about 20min ago SDVpuffersquee

latent mauve
#

LOL, lemme scroll up then, 'cause I need that too for something I'm planning.

uncut viper
#

its not a perfect solution for the whole issue but yeah theres a mail flag for the GSQ itself

latent mauve
#

Well, I'm looking to use it to open up a path the next day, so mailflag should suit my purposes fine.

#

I just was failing to find it in the list yesterday

uncut viper
#

im not sure why its prefixed with CF

lucid iron
#

CtarFrops

uncut viper
#

fun fact, the museum stardrop is the only one that doesnt follow the CF_ convention

latent mauve
#

Cannolli Fruit maybe?

uncut viper
#

well, they are all CF (except museum)

latent mauve
#

ah, I see

#

so something else

uncut viper
#

CF_Fair, CF_Fish, CF_Mines, CF_Sewer, CF_Spouse, CF_Statue, and... museumComplete

latent mauve
#

Maybe in early development the stardrops were called something else

uncut viper
#

cof drops

latent mauve
#

ChiFruit 😛

uncut viper
#

honestly not a bad guess maybe

latent mauve
#

..huh.

#

It's been forever since I've seen that event, but I didn't realize that the bunny jewel event has an abrupt cut to darkness after Jas glomps Shane

#

I thought I'd broken it, but nope, it's coded like that in the vanilla unpack.

uncut viper
#

(speaking of in case anyone else wants to remember for a mod author beta maybe, itd be nice if foundAllStardrops didnt return true earlyif you got max stamina maybe, since that means you cant add more stardrops from a mod without getting that achievement earlier than you deserve)

#

(or, yknow, get a mod that adds max stamina too much without ruining it)

lucid iron
#

I wish there's like hp drops

merry rampart
#

technically there's iridium milk

fierce vault
#

Button! I finally got the chance to try your mod, and it's so helpful! Thank you, again!

inner harbor
#

What does System.NullReferenceException: Object reference not set to an instance of an object. normally refer to when you are looking at a .tmx file? It looks fine on Tiled! What are we missing?

uncut viper
#

you're welcome! happy to help SDVpufferheart (which mod,)

uncut viper
calm quiver
#

wait wrong channel...

uncut viper
#

or missing something

fierce vault
#

The soundboard one!

uncut viper
#

ah! okay thats what i thought but thought it mightve been CMF SDVpuffersquee

inner harbor
#

exit warp?

lucid iron
#

NRE could be anything tbh

fierce vault
#

But I'm planning on using your arbitrary files access one later, when I develop my npc map more

lucid iron
#

Needs context

uncut viper
#

if im rcalling correctly its often when a TileData has no properties on it

#

not the ONLY thing ever bc as chu says it can be other things

#

but the times ive seen it has been invalid TileData

latent mauve
#

Map Property Warp or NPC Warp with an invalid character (specifically /n) is one I see a lot, too.

calm nebula
#

Could be anything

inner harbor
#

there's no warp at all

lucid iron
#

Post log?

uncut viper
#

usually actual properties just mistyped get a different sort of error from parsing, id think, and not usually an NRE

#

but yeah. need a log and possibly the tmx itself

inner harbor
ocean sailBOT
#

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

inner harbor
#

ignore all the Date Night Jasper stuff that's gonna be fixed

#

there was at first an xml error but I fixed that by embedding the tilesheets

uncut viper
#

oh, in LoadTileSets is a first (that ive seen personally)

lucid iron
#

tsx problem?

uncut viper
#

do you have a <tileset> whatever in your .tmx that is missing its inner <image source= ...>?

lucid iron
#

Did u embed the sheet

inner harbor
#

I thought I did but now I am wondering

#

as there are two paths layers and only one as an image source

uncut viper
#

yeah, delete the one without the image source

inner harbor
#

(this isn't my map btw, its one of our applicants)

lucid iron
#

There's a FileNotFoundException about a missing tsx

uncut viper
#

thats for a different map

inner harbor
#

yeh ignore the second one that one I haven't investifated fully.

#

her character looks great! I just need to ge tteh maps to load.

#

fingers crossed

lucid iron
#

u can send tmx for us to look (just tmx itself should be fine

inner harbor
#

I've adjusted the paths layer so hoping that works.

#

GTG cat needs attention.

uncut viper
#

(im pretty confident its the missing image source so ill be very sad if its not)

inner harbor
#

I need to re-do the Jasper stuff for Date Night Redux

#

wondering if I should release it. It's a little bit suggestive but not explicit.

uncut viper
#

its really the only thing that can go wrong in TMXFormat.LoadTileSets()
usually i see LoadObjects is the one that NREs, which is where my invalid TileData suggestion came from

inner harbor
#

no errors! Looks like I fixed the other map as well

#

unless I broke the mod altogether

#

okay all loads, all is good.

#

(or at leas tnot broken)

idle lantern
#

@uncut viper , do you think it's possible to have the game output the status of a current help wanted quest in that same format? Requirement and time limit?

#

Er like the way you did the Sound Board

uncut viper
#

like, all the possible help wanted quests?

idle lantern
#

No, just the current one. Say, when the farmer wakes up each day "Penny wants a Pufferfish. 2 days"

#

In the event the player was too lazy to click the log icon

uncut viper
#

i think thats quite a bit different from the sound board SDVpuffersquee

lucid iron
#

isnt that in a bunch of mods already

#

uiis2

#

iconic framework

idle lantern
#

I was just thinking of the little box you have your prompts pop up in

lucid iron
#

like the journal??

fierce vault
#

Hey, button, if you don't mind me asking, are the names listed on each song the internal ones we'd fill in when writing events, because some of them have regular spaces instead of underscores. Are those special cases? I assume they are the internal ones, because the song "winter the wind can be still" is named cyclops instead.

uncut viper
#

so like a to-do list sort of mod that auto populates from your quests and stuff?

idle lantern
#

I haven't seen one yet (I'm probably not looking up the right subject). Was thinking out how Fishing Overlay smacks fish on the top of your screen and thought it'd be nice if a help wanted was on the screen

uncut viper
uncut viper
fierce vault
#

Ok. Do the ones without "_" still work in the json?

idle lantern
#

lol. Not a request, for sure.

fierce vault
#

Like Ghost Synth

calm nebula
#

Frankly the spouse should help with day 1 planting

#

I don't care you want to visit penny, maru

uncut viper
calm nebula
#

We are a farm family

uncut viper
#

though @fierce vault according to the wiki, Ghost Synth is simply an alias for fall2 and vanilla never uses it

#

so, use fall2 instead

fierce vault
#

Oh, ok. Thank you for the explanations

uncut viper
lucid iron
#

say can a sdv mod write to clipboard

calm nebula
#

Sure

uncut viper
#

i dont see why not

lucid iron
#

lemme copy paste the cue name pls

uncut viper
#

weh

calm nebula
#

How does the invite code write to clipboard

uncut viper
#

DesktopClipboard.SetText(this.code)

lucid iron
#

ez then

uncut viper
#

glad i didnt have to figure this out myself

calm nebula
#

Enjoy the xclip?

uncut viper
#

i actually dont know if i even want to bc i dont know if i wanna stuff another button on there

#

feels like itd make navigating with the gamepad annoying

#

too many focusables

calm nebula
#

Just focus on knitting

uncut viper
#

i have you to do that for me

#

sometimes you dont do it very well

#

which is why you're here despite being retired

calm nebula
#

Heyyyyyy

#

(Fair)

lucid iron
#

I think it should just be a checkbox like "copy on play"

#

Although, if u r logging the cue name with info then it's basically same right

#

Ppl can just go copy that from smapi console

uncut viper
#

i wasnt logging it but i could i guess

calm nebula
uncut viper
#

copy on play sounds like a lot of clipboard spam

inner harbor
#

My first goal once I vaguely know how to write C# will be to have Jacob and Eloise go to the resort together, and Dale and Valkyrie. Hopefully that will be relatively simple, and I can use atra's code for 1.5 GIMA for reference, maybe?

calm nebula
#

Or double clicking

uncut viper
#

atra i still think you should get the role back

#

clearly i think you should stay

lucid iron
#

Atra can have one of the fancy orang

uncut viper
#

listening for double clicking sounds annoying SDVpufferpensive

woeful lintel
#

Is there a way to copy a thread's link on discord mobile?

lucid iron
#

Atra can i update gima

uncut viper
#

maybe i just make the copy button not focusable for gamepad

calm nebula
uncut viper
#

gamepad users dont need to copy text

calm nebula
#

All mine are up for grabs

uncut viper
#

wait adding another button means recalculating the text overflow detection...

calm nebula
#

On the thread

lucid iron
#

See i wanted to look at that for a while

#

But last time i was like

uncut viper
#

(im just gonna log the sound name when its played...)\

lucid iron
#

Gasp atra commit <1 month ago

calm nebula
#

It's one of the ones I personally want to do eventually I just understand that I won't do it any time fast

lucid iron
#

You can also copy some message in thread

calm nebula
#

Not helped by the fact I keep doing other things

lucid iron
#

Well no promises over here but I'll give myself 2 weekends

#

It's like 95% working right

woeful lintel
calm nebula
#

It actually works fine, I just want it divorced from atracore

#

It and SOTE

inner harbor
woeful lintel
broken yew
#

Npc making. I'm lost.

lucid iron
#

Yeah so 5% is the part where i cherry pick things

inner harbor
#

what's SOTE?

calm nebula
calm nebula
lucid iron
woeful lintel
#

It doesn't appear here because it's been inactive for too long...

inner harbor
#

Yeh, I figured it out while you were typing, Special Order Tags Extended

lucid iron
#

what thread u want im on pc

calm nebula
#

Incredibly pointless at this point when gsq exist

#

But I need a home for fixing the bloody dropboxen so I guess that one works

inner harbor
#

isnt it what we used for the portraits on the special orders?

calm nebula
ocean sailBOT
#
Creating a Custom NPC

Keep in mind that making NPCs is a complex process that requires learning many different aspects of Stardew modding.
Here are a few links that can help get you started on all that you need to know:

calm nebula
#

What are you stuck on?

calm nebula
inner harbor
#

yes indeed we do 🙂

calm nebula
#

It's about 75% eaten by the game so

#

Which is kinda unfortunate tbh

#

Or fortunate no idea

inner harbor
#

I also need to make Jasper take the kids with him when he goes to the beach and not leave them home alone

calm nebula
broken yew
#

Actually. Nevermind. I am not at my computer and I am just learning to code anyway.

#

but how do I make a sprite for my npc

lucid iron
#

#making-mods-art is perhaps better place to ask, but first you should unpack and look at game assets

#

!unpack

ocean sailBOT
#

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

inner harbor
#

(or maybe Luma)

inner harbor
#

Anyway, if you do get it working Chu, I'm happy to be a guinea pig/tester.

#

IT's the atra mod I missed the most.

uncut viper
#
[game] An error occurred in the base update loop: System.Text.Encoder
FallbackException: Unable to translate Unicode character \\uD834 at index 28 to specified code page.

found a fun new way to hard crash my game

broken yew
lucid iron
#

basically yea

#

well, this is just for npc

#

player cosmetics is a different thing

uncut viper
#

(i updated soundboard on nexus to allow clipboard copying for u chu. ur welcome)

#

(it also now logs the cue name to console as well)

woeful lintel
broken yew
calm nebula
#

Hang on a second

woeful lintel
calm nebula
#

Checking my colors real fast

#

Okay cool

woeful lintel
#

Discord mobile sucks so bad

calm nebula
#

I definitely was orange for a second

#

I assume someone applied a script to wiki

#

Phew

#

Back to the blues

inner harbor
#

you've got a stardrop though!

#

that's more than most of us 🙂

calm nebula
#

Yeahhhh

lucid iron
#

GIMAR or GIMAC

#

GIMAC easier to say i think

inner harbor
#

GIMMEE!

#

Ginger Island Mainland Manipulations Extended Expansion

lucid iron
#

GIMAE would be weird cus i have no plan of extending anything

inner harbor
#

(I'm just being silly)

#

what's C?

lucid iron
#

continued

inner harbor
#

ah ofc

lucid iron
#

redux is the other pick

twin wadi
#

redux sounds nice but GIMAC looks better as an acronym

inner harbor
#

How does the game go about creating the eventseen_memory conversation topics? Is it for every event or just some and if just some, what property do they do to need it? Does it automatically erase them at some point?

#

ie: eventSeen_15749324_memory_fourweeks

uncut viper
#

every day the game looks at every past CT you've had and adds memory CTs at the right times

inner harbor
#

ah so its only events with conversation topics, that makes sense.

uncut viper
#

its actually not just eventseen

uncut viper
#

eventSeen_<eventId> is given to you automatically every time you start an event

inner harbor
#

so once there's a new one does it overwrite the old one? Like fourweeks replaces oneday etc? OR do they delete after a while?

uncut viper
#

and the game assigns memories to every single CT, no matter where the CT came from

calm nebula
#

4 days

uncut viper
#

so you could have questComplete_<questId>_fourweeks even

#

and they each last 4 days yes

inner harbor
#

ah that helps me make sense of it.

#

and obviously once you delete them via triggeractions it'll no longer list them.

#

this feels like something I could make practical use with

uncut viper
#

be careful with that bc if you manually remove a CT with that trigger action, it wont get a memory

patent lanceBOT
#

@calm nebula: take a look (168h ago)

uncut viper
#

(manually removing a CT in general means it will be as if the player never saw it. so things like spacecore's "HAS_HAD_CT" gsq or w/e will not work)

#

unless you try to remove it manually after it expires, for whatever reason. if it expires, it gets stored as a "seen CT"
if you dont let it expire on its own, it doesnt, and its the "seen CTs" that generate memories

calm nebula
#

Remind me in 1 day to take a gd look

patent lanceBOT
#

...mmmm I just wrote that down in a database marked for deletion...eh it'll probably be fine (#6739430) (1d | <t:1750467084>)

lucid iron
#

sorry atra im yeeting all ur caches

inner harbor
#

Sry i didnt make that clear.

uncut viper
#

the CT is separate from whether or not the event is seen or can be repeated

#

doing anything to the CT will not make the event repeatable

prisma ibex
#

Technology mode works yey

tender bloom
#

did the weird stuff that happens when too many recipes are added to the level up screen get fixed?

#

i know a while ago in JA in that was warned against

#

it's nbd with just one recipe but if users installed like 12 diff mods each with 1 recipe it would just not show a bunch or show a glitch-y thing in the level up screen iirc

brittle pasture
#

nop

lucid iron
#

this one's fine cus its just reskin beach totem right

calm nebula
#

Like I look at it and cringe

#

So much memory churn

#

So baddddd

faint ingot
#

Finally uploaded the content expansion of Law and Order mod, thanks chu for helping with the fog effects for the new map

whole raptor
#

Do I see correctly that Chu is reviving gima? SDVpuffereyes

uncut viper
#

chu has 2 weekends to do so or else they are entering voluntary exile

#

so sayeth chu

daring mirage
#

good free software for texture edits?
hey guys, im new to modding textures, trying to find an alternative to adobe illustrator to retexture entire tile shades. any ideas or suggestions welcome.
(im working on retexturing some of my fav mod tool buttons to match starblue, earthy, and vintage UIs)

calm nebula
#

!software

ocean sailBOT
calm nebula
#

Gimp is fine

brave fable
#

if you're already using illustrator and have an adobe subscription, photoshop is far more usable for the task

#

otherwise i'd suggest PaintDotNet as a good alternative for art, and begrudgingly Gimp for edits/filters

#

i've heard Graphite is good as well, and the UI looks much more usable than Gimp, but it's not primarily a raster/pixel art program so less suited to the task

lucid iron
#

Aseprite is alright

tender bloom
#

I enjoy my janky ancient macOS/linux only program

#

It’s a bit of an acquired taste

vernal crest
#

I like using Photopea whenever I need to use something other than aseprite

lucid iron
#

vs Game1.getCharacterFromName

woeful lintel
#

Gimp 4ever SDVpuffersquee

calm nebula
#

Tbh

uncut viper
lucid iron
#

yea thats what i was wondering

uncut viper
#

more than you'd already have to ig

lucid iron
#

but also im just lazy so Game1.getCharacterFromName it is

uncut viper
#

make it work -> make it fast

calm nebula
#

Gima runs nearly always on the master player anyways

brave fable
#

very good to hear it doesn't necessarily need to work if it's fast

uncut viper
#

(fun fact: i dont know what GIMA does at all. i do not need to be told what it does.)

calm nebula
#

Where it doesn't it doesn't matter but I didn't know that at the time

patent lanceBOT
uncut viper
lucid iron
#

my impression so far is that it does a lot of things

uncut viper
#

no getting past that sorry bluebs. you'll have to put effort in

lucid iron
#

which is scary given the specific title

brave fable
#

it worked, but Entry(IModHelper helper) {} made it faster

calm nebula
#

Wdym it does a lot of things

lucid iron
#

also it specifically does a lot of thing to pam

winged lichen
#

does anyone know of a mod where you can share journal progress when playing multiplayer?

uncut viper
winged lichen
#

sounds good thanks

calm nebula
#

I'll move that stuff over to Pam Tries

uncut viper
#

will you

calm nebula
#

I didn't say anything about publishing anything

#

Just that I'll move it

pseudo vault
#

Mushroom test successful. But now I need to change the denied text...

#

Can I just do
"DeniedMessage": "Can only be sown inside a Greenhouse."?

hard fern
#

mmm. hill

pseudo vault
#

Hill Zone Act 1

hard fern
#

😓 why are there no rounded top corners though... the top of my hill is so square

pseudo vault
#

Might need to draw them yourself

hard fern
#

😔 ill only resort to making custom tiles as a last resort

rigid oriole
#

Surely someone has a tilesheet somewhere thats already recolor compatible

pseudo vault
#

They need rounded Corners

#

I'd guess something like this

brave fable
#

just vertically flip the rounded bottom corners 🤷‍♂️

pine elbow
lucid iron
#

well i built gima but

#

it occur to me that i do not know the detail of this mod besides "it send ppl to ginger island more???"

pseudo vault
#

I'm gonna hope I did this right...

uncut viper
lucid iron
#

🛳️

lucid iron
#

im probably gonna redo it when im less eepy so the extensions methods i yoinked over are in 1 namespace

calm nebula
#

It sends people to ginger island more but has more controls on it

#

That's about it

#

It's also written weirdly

lucid iron
#

what r all these pam things then...

calm nebula
#

Oh and you can call Pam

lucid iron
#

also does it just have non destructive npc??

calm nebula
#

But only on the island farm

uncut viper
#

chu caught the car

lucid iron
#

car

uncut viper
#

yes, the car

#

as in the dog who caught the car

lucid iron
#

i cant prse this

uncut viper
#

so determined to do something only to be unsure what you're supposed to do once you've done it

calm nebula
#

I was gonna send people to island west

vernal crest
calm nebula
#

And also perhaps move it to a map based system

lucid iron
#

a <3hr whim thus far

uncut viper
#

a lovely hour

calm nebula
#

This is why we like chue

lucid iron
#

ill probably yeet the not strictly send ppl to gima stuff too LilyDerp

#

but hm

calm nebula
#

Fair! I think it also adds dialogue lines

lucid iron
#

is there a easier way to do all this in 1.6 3sSmolMiku

#

can csk send ppl to island moar

uncut viper
#

i dont remember SDVpufferthumbsup

calm nebula
#

No it hasn't changed tbh

uncut viper
#

CSK is my Custom Schedule Keys mod that overrides the schedule theyd normally choose based on a GSQ

lucid iron
#

yea can u give ppl their island schedules this way

#

or is that not a thing which exists

uncut viper
#

theres a 50% chance i tested it and it worked, a 50% chance i tested it and it didnt work, and a 50% chance i didnt test it at all

calm nebula
#

Not really and also it's more hardcoded than I like tbh even in gima

uncut viper
#

i genuinely have no memory of it

calm nebula
#

Like a lot of it could have moved to a data asset

lucid iron
#

150% chance i like these rates

tiny zealot
#

i suppose an npc could have an island schedule, but normally they do not

calm nebula
#

Ie, positions and animations and stuff

#

Yup!

#

Anyways

#

Do what you wish SDVpufferheart

tiny zealot
#

ginger island picks people (or specific predefined groups) at random and blasts a new schedule at them on demand

lucid iron
#

is ginger island some kind of pied piper

uncut viper
#

1.6.16 request hey pathos

pseudo vault
vernal crest
#

Yup you can have your i18n key be anything you want (except for the config schema where there is a specific format).

hard fern
#

SDVpufferflat i messed up so bad... instead of remembering to build up the cliff walls a bit i just kinda. made all the surrounding edges water

#

oh well

gaunt orbit
#

Nothin wrong with that

latent mauve
#

I made the mistake of using Event Tester to run through every single event in my game to check for any name replacements I missed. 4 hours later, I am back. xD

#

(good thing I did though, apparently 40 events need something fixed)

drowsy minnow
#

hiii i was just wondering if someone could help me, so far i got it mostly functional except for the factor of it keeos only dropping the first item, but when i try removing the
{
},
between each one itll only drop the bottom item and im just not sure how to do this now SDVpuffersob
https://smapi.io/json/none/802a28b3d3cb410a8cacbc8256bab9f0

brittle pasture
#

if you want multiple possible drops each with equal chance, simply use one entry, and have it choose from multiple items with RandomItemIds

#

look at the Artifact Trove in Data/Objects for an example

drowsy minnow
#

thank youuSDVpufferheart

hard fern
#

🤔 hm. i dunno if i want to just. water the back or do i want some kind of... "overlooking the horizon" background....? 😅

gaunt orbit
#

diving into the depths of Cursors, pray for me

hard fern
#

🙏

#

oh speaking of cursors... SDVpuffersweats

gaunt orbit
#

I really want to add a feature to embed the layout data inside screenshots of the room, so when you post a screenshot other people can download it and "import" it into their own game. (provided they had the same furniture packs)

sadly I'm being kneecapped by a lack of file selection tools. As far as I can tell there's no standalone .net lib for file drag-and-drop, and the clipboard is text-only SDVpufferwaaah
there's a lib with native bindings for file dialogs but I dunno if you can use native libs with SMAPI, and it's a bit obtuse anyways

#

I experimented before with a way to embed arbitrary data inside custom png file chunks and actually got it to work, just... no way of easily selecting user files in monogame

lucid mulch
#

you can use native libs with smapi, just remember to ship for the various flavors that are used in the wild, and that iirc you need to call the load yourself as the auto discovery wont know to look at the mod folder

#

in my lua mod loader I had

NativeLibrary.Load(Path.Combine(Directory.GetParent(typeof(ModEntry).Assembly.Location).FullName, "runtimes", "win-x64", "native", "lua54.dll"));

where I cut corners because it was a poc and had no intention to ever ship it anyway

gaunt orbit
#

need to do more testing and add the item for it, but the base functionality and ui are complete!

#

hm. I think I need to find a way to omit npcs from furniture placement checks. the cat is preventing layouts from being applied

#

ah, I can adjust the collision mask. useful

gaunt orbit
#

oh right, the close button. I always forget to add that

brave fable
#

initializeUpperRightCloseButton() my beloved

inner harbor
#

Ie, jacob would always take eloise, Dale will always take Valkyrie.

gaunt orbit
brave fable
#

well you have to remember that all hud elements are an IClickableMenu, including the clock, moneybox, inventory, ..

#

i wouldn't really want to close those lol

gaunt orbit
#

hooray for spaghetti!

#

but it really does make sense for the hud to just reuse the ui system

#

now if only draw order was reversed so it matched input layering with overlapping hud elements

#

(I will bitch about this until the end of time /lh)

steel plaza
#

where is like the repo or wiki for this?

lucid mulch
#

still makes me cry that its called IClickableMenu when its not an interface

steel plaza
#

like the patchmode things

gaunt orbit
#

like the content patcher wiki?

steel plaza
brave fable
#

well it's a user interface SDVdemetriums

gaunt orbit
#

there's docs on the CP repo that describe how to use all of its features

#

hold on

#

should probably have a command for that tbh

urban patrol
#

if i'm editing MapTiles to be npc passable, do i have to do them one at a time, or is there a way i can tell it to do a square of x y height/width?

hard fern
#

SDVpufferwaaah my leaves look like broccoli

gaunt orbit
urban patrol
#

is there a way to add TileData in CP and not by doing a map overlay in Tiled?

gaunt orbit
gaunt orbit
#

Can I tempt you into c# land? :P

hard fern
#

i always forget how zoomed in the game map gets compared to when working on it in tiled

urban patrol
vernal crest
#

For just 5 tiles, MapTiles would be easy enough

urban patrol
#

if i was going to venture into C# it would probably be for the record player big craftable i want to make

urban patrol
#

man, not to scope creep myself, but with the new museum framework mod, it would be so fun to have collectable records

uncut viper
#

ill scope creep you for you then. make a record museum

#

it would be so fun

lucid mulch
#

would need to properly benchmark it, but pretty sure MapTiles would be more efficient (runtime performance wise)

#

mod author sanity wise, there would be a point where throwing it in a tmx and using tiled instead may be easier

brave fable
#

i hate to be the one to break it to you but there's already a jukebox in the game SDVitemjukebox

lucid mulch
#

jukebox doesn't use records, it just uses the musicHeard data or whatever that fields called

urban patrol
#

one of my NPCs is a ghost from the 80s who likes music so i wanted a cute themed item you could unlock

drowsy minnow
blissful panther
#

...one took this bait. They really are that bad.

formal crown
#

Alright, I've tried the global inventory id thing, but I face a new issue: I can't pick up the chest. I tried to turn it to what Button said but I failed so far

#

Nvm, success! SDVpufferparty

brittle pasture
formal crown
#

SDVpufferwow Works for the farmhand too!

#

@uncut viper @calm nebula @tawny ore Thanks to y'all for the help! It's indeed resolved SDVpufferparty (there's a small issue where building overlay for the filled chest doesn't work but honestly its minor)

urban patrol
#

you have the D4 in there again

vernal crest
drowsy minnow
#

OH MY GOD-

#

well thats what i get for doing copy paste to cut corners..SDVpufferwaaah

#

thank u for the help

brave fable
#

another fine reason to use {{ModId}}_Spring D4 as your item/entry id to more clearly emphasise the item's unique name

drowsy minnow
#

it is just processing to me this may be why the spring d4 vanished out of nowhere

#

it in fact was💀

urban patrol
#

i have two versions of the same map for before and after a character arrives in town. can i do a conditional load, or will that cause an error since load is exclusive?

devout otter
#

You can give each load a Priority field.

#

So could take precedence over the other if the conditions are fulfilled.

#

But if the same map with slightly different version, can't you just use EditMap?

lucid mulch
#

conditional load is fine with exclusive.
Exclusive only cares that exactly 1 ended up trying to load, doesn't care about the 5 that didn't even bother trying

urban patrol
#

does each load need to have a condition (has seen event = true and = false), or is just one fine?

devout otter
#

With the first method you wouldn't need Priority.

lucid mulch
#

if exclusive, then they need to be mutually exclusive, if not, then only the hasseen=true would need it and have a higher priority

devout otter
#

With the second you'd need to set which one would take priority.

urban patrol
#

okay so low priority for the one with no condition? and then no priority for the has seen = false?

lucid mulch
#

not setting priority = exclusive

devout otter
#

Exclusive means that one would always be chosen if there's more than one Load.

uncut viper
#

it also means if two mods tryu to be exclusive, they both lose and CP yells at you

lucid mulch
#

having a few lows, mediums etc with an exclusive is technically fine, the exclusive will win, but multiple exclusive is no one winning as button says

uncut viper
#

or two loads, rather

urban patrol
#
            "Action": "Load",
            "Target": "Maps/{{ModId}}_CrystalAndNiko",
            "FromFile": "assets/maps/CrystalAndNiko.tmx",
            "Priority": "Low",
            "When": {
        "HasSeenEvent |contains={{ModId}}_Seance2": true,
      }
},
        
    {
        "LogName": "NikoRoomRuins",
        "Action": "Load",
        "Priority": "Low",
        "Target": "Maps/{{ModId}}_CrystalAndNiko",
        "FromFile": "assets/maps/CrystalAndNiko_Ruins.tmx",
        "When": {
            "HasSeenEvent |contains={{ModId}}_Seance2": false,
        }
    },```

like this, correct?
uncut viper
#

those are both priority low

urban patrol
#

so one needs to be higher than the other, otherwise they both lose?

uncut viper
#

which i guess doesnt matter if theyre mutually exclusibve conditions wise

lucid mulch
#

though having the mutually exclusive when conditions means it doesn't reall-

uncut viper
#

but if theyre mutually exclusive conditions wise then they dont need the priority lines ta all

urban patrol
#

oh okay so having both is overkill

#

i do think having the conditions will be more readable for me than deciphering load priority

uncut viper
#

its like, negligible impact on anything, but potential impact on you remembering what is required if you ever end up changing these conditions or load setup

#

overkill mentally not functionally, basically

urban patrol
#

makes sense

#

thanks for the help all

lucid mulch
#

technically you don't need different priority either, the last one will win when same priority (as long as its not exclusive)

urban patrol
#

so low priority is "desirable" because it happens last, right? not that i'm going to change it, but for the sake of learning, would the correct way to do this be to have my conditionless one load with high priority, then have the condition one load with low priority?

devout otter
#

High priority would be chosen over low priority.

#

So generally the one with the more specific condition should have higher priority.

urban patrol
#

oh ok i had it backwards

pseudo vault
#

I first thought I had to replace it with the ModId I had in the manifest

#

(Yeah I misread it this bad...)

brave fable
#

i see why you'd think that, but it's Content Patcher that replaces it with your actual ModId value -- {{}} marks a token that CP will tokenise into a real value

pseudo vault
#

Oh... Thanks.

#

So that is how token work

#

I did not understand that as well

brave fable