#making-mods-general

1 messages · Page 96 of 1

brave fable
#

collect items sounds fine

#

just thinking of having an item with a helditem and interacting with a chara would pop the helditem and donate to the order

lucid iron
#

get the 7 dragon balls to complete this quest

brave fable
#

similar

#

but lower stakes

lucid iron
#

hm

teal bridge
#

6 dragon balls?

lucid iron
#

what if u just keep calling SpecialOrder.SetDuration whenever u want

#

it doesnt seem to keep any "start day" so that method just adds 7 day for u

brave fable
#

it'll still say the duration remaining though

#

which would be a bit silly

lucid iron
#

off to harmony mines for u then

brave fable
#

yea this doesn't sound very fun anymore lol

velvet narwhal
#

blueb has a 5 bedroom 4 bath house in harmony wdym

lucid iron
#

I wonder if u could do custom objective actually

#

Maybe if u trick game with a funny namespace

brave fable
#

when we start adding 'funny' to our hacky bs is when i get skeptical

#

objectives are fine for me anyway, just have to screw around with the handler to make it check item.helditem instead of item

tender bloom
#

I think atra has claimed there's like 5 different mods that make untimed special orders

#

SVE, RSV, etc etc

calm nebula
#

Hi classical Mathperson!

tender bloom
#

EMP

lucid iron
tender bloom
#

hello other me

calm nebula
#

ES, SOTE

brave fable
#

ah yes small mods with easy to reference code

calm nebula
#

My headache

lucid iron
#

Do they all patch istimedquest lol

brave fable
#

god i hope so

tender bloom
calm nebula
finite ginkgo
brave fable
#

jesus

#

i like the sound of that more

lucid iron
#

Just gotta keeping adding days every season or two

#

Or would it not check duration at all in that case

finite ginkgo
#

Still gotta add more days

brave fable
#

always the 5 minute funny ideas that turn into harmony and subclass and dialogue fenangling and every other idiot workaround

finite ginkgo
frail swan
#

I keep getting "[Content Patcher] Could not load content pack 'MercyTextures': content pack has no content.json file." what am I doing wrong here?

uncut viper
#

you told your manifest.json that it was a contentpackfor content patcher, not AT

frail swan
#

oh shit ty

teal bridge
#

Found out earlier that one of my (non-Harmony) mods was getting an InvalidProgramException, I guess due to binary changes in SDV. I know that SMAPI should normally either rewrite things or report incompatibilities. Is this a bug that I should report, or just (bad) luck of the draw that SMAPI didn't happen to pick up whatever that issue was?

lucid iron
#

it's definitely your mod?

teal bridge
#

Definitely, and as soon as I rebuilt the mod with no code changes at all, it was fine.

velvet narwhal
#

AVE?

#

god what's atra's screenshot

teal bridge
#

SMAPI did report that it rewrote one method, which could have been related (but not necessarily), so I'm thinking maybe SMAPI rewrote it wrong.

#

But I don't know that, and frankly am not emotionally invested enough to really go spelunking, since it was apparently trivial to get working again.

teal bridge
#

That's the error you normally get when you spit out bad IL in a transpiler and such. It could be caused by a mod calling a vanilla method whose parameters have changed - but SMAPI normally rewrites those to deal with optional params.

#

Anyway... no big deal either way, just thought I'd post a heads up, in case Pathos is sitting on his hands with nothing better to do.

tiny zealot
#

you can give me the mouse and have a cat instead. i am in favor

calm nebula
#

Did you use Utility.ForEachItem

rain basalt
#

oops lol forgot snow is more strict on merges

calm nebula
teal bridge
rancid temple
#

Snow also doesn't like to be rotated

teal bridge
#

At least, that's the only one that appeared in the log.

rain basalt
#

yah didnt rotate grass so just gota line stuff up

teal bridge
#

enterMine does have an optional parameter that looks new/unfamiliar to me (forceLayout). Don't think it was there before.

calm nebula
teal bridge
#

And it is a Nullable<int>, which is easy to screw up in IL emission.

#

(Speaking from experience)

calm nebula
#

Yup

#

I recall in giving pintail issues too lol

royal stump
# tender bloom EMP

(I had to double-check myself, but EMP doesn't do untimed orders, just custom boards SDVkrobusgiggle)

#

probably meant to add it at some point, though

calm nebula
#

Yeah esca

#

Why haven't you done everything

#

Why haven't you fixed my mods

royal stump
#

it's on my to-do list okay

#

specifically adding a townBush arg to DB's addBush command because I can't point people to your bush mod SDVpuffermlem

calm nebula
#

Sorrrry

#

God I'm tired

royal stump
calm nebula
#

Just walked out of work

#

Hopefully. Nothing has exploded by morning

rancid musk
shut grove
#

can anyone explain these 4 water tiles to me in the vanilla tilesheet? Do they go to different water types?

#

for fishing

rain basalt
#

you can set different properties to them if you need

#

but there not for fish but looks

shut grove
#

they don't look all that different to me

rain basalt
#

i think there used for pool or fountian water

shut grove
#

oh

old edge
#

Anyone can tell me why my bus stop option is not triggering after the default calico desert dialogue bus option?

rain basalt
#

dont know anything about dialogue sorry

old edge
#

I think Its too hard to add a bus option. Too bad buslocations isnt being updated it honestly seems like an easy fix.

shut grove
#

found the tiles I was looking for. haven't detailed the riverbed yet

rain basalt
#

yah detailing is rough just takes time though

shut grove
#

for the edge, I just placed every copy of the same tile

tough crater
#

(Unrelated)
I'm trying to not have my jsons too clogged up (for easier navigation). Is there a way to do an Include for dynamic tokens? I'm using a LOT of em

tiny zealot
#

you can't set dynamic tokens in an included file. they must be in content.json. sorry!

tough crater
#

Damn

#

Someone tell the content patcher team to change this 😂 jk jk

#

Idk how that would even be coded to work

lucid iron
#

i suspect reason is probably because dynamic tokens need to be ordered

fast urchin
#

I registered the same Action in the tiledata of my self-made map as my C# mod, but the interaction in the game does not work.

tiny zealot
shut grove
tiny zealot
calm nebula
#

Wait

#

You're in a festival?

#

Yeah parch event.checkaction

fast urchin
#

@tiny zealot details are here. RPBFishingGame and FishingGame are the same, I only made the modification to transfer the player's position after the game is over.

rain basalt
shut grove
#

I'm starting with my river since I want to use it as my bottom border for the map.

rain basalt
#

Ah I see

lucid iron
#

your tile data is misaligned nvm i read the , as a dot

soft wolf
#

Was going to try my hand at updating a mod but the error it throws is just "DLL couldn't be loaded." Where do I even start with this lol

rain basalt
#

Also doesn’t some tile data go on the building layer or it won’t work forgot what cases I know one is the Minecart action

lucid iron
#

did you build the mod

soft wolf
#

It's BetterFriendship

lucid iron
#

post log then

calm nebula
#

joining Casey on the "still on beta-5" train

soft wolf
ocean sailBOT
lucid iron
#
 ---> Mono.Cecil.AssemblyResolutionException: Failed to resolve assembly: 'System.Runtime.Caching, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'
#

did the mod include its own System.Runtime.Caching

elfin rover
#

I'm totally new in modding, i'm trying to do a mod that edits energy values of some foods, but I can't seem to find itemIds or names, neither buffs that I can apply to those foods, I've been tryingg to track them following https://stardewvalleywiki.com/, but I can't find the docs that I'm looking for, any ideas?
I'm using JSON and CP

soft wolf
lucid iron
#

try rmoving that maybe?

#

unsure what is diff between this nuget and the provided one akaShrug

frail jackal
#

Hey guys, I had this code for allowing a bot to make use of a terrain feature in a multiplayer-savvy way:

        // If we can get a terrain feature, then have it do the "use" action,
        // by temporarily setting the bot farmer to be the Game1 player.
        var origPlayer = Game1.player;
        Game1.player = farmer;
        bool result = feature.performUseAction(tileLocation);
        Game1.player = origPlayer;```
But this no longer works, because `Game1.player` is read-only.  Any idea how to do this properly now?
soft wolf
tiny zealot
#

@ivory plume just reporting that casey's summary comports with my experience at this time (1.6.11, 4.1.4). loading a gender switch block inside an i18n token bakes in the male value of the block, and only a reload_i18n/patch reload will cause it to reevaluate with the player's current gender

rain basalt
fast urchin
#

so strange 😦

rain basalt
#

What is whalek

brave fable
teal bridge
rain basalt
# elfin rover I'm totally new in modding, i'm trying to do a mod that edits energy values of s...

Also everything related to content patcher is here but you will basically want to edit data fields haven’t looked at food and objects to much but remember seeing values somewhere https://github.com/Pathoschild/StardewMods/blob/develop/ContentPatcher/docs/author-guide.md

GitHub

Mods for Stardew Valley using SMAPI. Contribute to Pathoschild/StardewMods development by creating an account on GitHub.

brave fable
#

the game doesn't check interactions during festivals, you have to handle it yourself

tender bloom
#

I’ve done some stuff in my festival

#

Fireworks festival

rain basalt
fast urchin
tender bloom
#

I hijacked a question dialogue to get my minigame going

#

Don’t remember the details anymore but it worked last I checked

#

I have a bunch of tile actions I did in C#

fast urchin
rain basalt
#

Yah haven’t gone that advanced yet sorry

tiny zealot
teal bridge
#

I thought that only applied to people who'd updated to an interim, broken ModBuildConfig, not people who were using the 1.6.8 compatible version?

rain basalt
#

Never windows for life (jk) SDVpufferheart we love all users

teal bridge
#

Oh, never mind, just saw the 4.3.0.

fast urchin
#

Thank you guys

fast urchin
languid aurora
#

If I add a delegate to an object's fieldChangeVisibleEvent or OnArrayReplaced event, do I need to be concerned about that getting being saved to the save file? Does that sort of thing get serialized?

#

I feel like it doesn't but I'm wary of anything to do with net fields or delegates based on shenanigans I've seen them cause in here

brittle pasture
#

no, it shouldn't. it does mean you have to do it every game start

languid aurora
#

That's fine since I'm adding them to the objects that need them at the start of each day. Tracking them to remove them before end of day is becoming way more complicated than I'd like to deal with, so I'd prefer to just build in a check so if it fires and isn't for the current day it just does nothing rather than having to track all kinds of conditions to run some delegate removal anon functions that I've stored up somewhere.

grizzled rain
#

hello all y'all, I am here again because I tried to make a cooking recipe and it Did Not Work™️

#

here is the content.json, I'm pretty sure the problem is at "LogName": "Cooking Recipe"

#

if anybody could help tell me what the heck i'm doing wrong that would be great. thanks in advance!

vernal crest
grizzled rain
brittle pasture
#

your shop item ID starts with a (R) which is not any valid item type. You want (O)

grizzled rain
#

oh, ok. thanks!

brittle pasture
#

that's not the only error though, hold on

grizzled rain
#

🫡

brittle pasture
#

ok shop recipe unlocks are kinda weird, but for now to unblock your issues replace every instance of ritzygen.grillbugsteak_GrilledBugSteakCooking with just ritzygen.grillbugsteak_GrilledBugSteak

#

including in your recipes data and shop data

grizzled rain
#

🫡

brittle pasture
#

explanation: shop entries marked as "recipe" will use the actual item referenced in the ItemId, and since you don't have any items named ritzygen.grillbugsteak_GrilledBugSteakCooking it shows up as an error item

grizzled rain
#

thank you, that makes sense

#

I am a little bit idiot, sorry for getting that wrong

brittle pasture
#

(no probs, as I said recipes are weird. also wait, hold on, that's not all the issues)
when you buy a recipe the game will unlock the recipe with the ID set in the shop entry's ObjectInternalName field, which you don't set, so it will fall back to the Name field of the item definition

#

so actually you also want to remove the Name field of the Data/Objects entry, since it's set to GrilledBugSteak the shop entry will actually unlock the recipe named GrilledBugSteak, which doesn't exist

#

without a Name field the game unlocks the recipe equal to the item's ID
(did I mention recipes are weird?)

grizzled rain
#

okey 🫡

brittle pasture
grizzled rain
#

it is ok, i appreciate the help

grizzled rain
brittle pasture
#

sure, go ahead! SDVpufferthumbsup

grizzled rain
long jungle
#

Can anyone give me example code on how to edit monster stats?

So far, I was only able to change weapon stats and it was relatively easy. Will monster stats work the same?

brittle pasture
#

unfortunately they're still using the slash delimited string format, which makes editing a pain in the ass

#

monsters are also severely hardcoded so I'm not sure if you changes will apply across the board (e.g. to dangerous variants, etc.)

long jungle
#
    "Action": "EditData",
    "Target": "Data/Monsters",
    "TextOperations": [
{
    "Operation": "Append",
    "Target": [ "Fields", "MONSTERNAMEHERE", "6" ], //field 6 because that's where the drops are at
    "Value": "<ITEM ID> <CHANCE I.E. .7>", //space delimited
    "Delimiter": " "
},
]
}```

Found this in this channel somewhere but I still cannot comprehend it fully as it only edited monster drops
long jungle
velvet narwhal
long jungle
grizzled rain
lucid iron
#

If you are trying to spawn monsters with different stat and sprite, you should probably use FTM

brittle pasture
long jungle
velvet narwhal
#

my codeblock is specifically for adding more drops into a monster's data

long jungle
long jungle
grizzled rain
velvet narwhal
#

if you want to do something different to the other fields you have to do new editdata blocks since textediting target fields is limited to 3 arguments

brittle pasture
grizzled rain
brittle pasture
#

weird. try removing {{i18n:recipename.1}} at the end of the recipe and reload?

brittle pasture
#

damn, it might be because I'm sleep deprived but I can't see anything wrong

grizzled rain
#

sorry. hope you can get some rest after this.

brittle pasture
brave fable
#

the human eye is good at seeing what is there, but not at what is not

#

patch export data/objects >>

"ritzygen.grillbugsteak_GrilledBugSteak": {
    "Name": null,
    "DisplayName": "(no translation:foodname.1)",
    "Description": "(no translation:fooddesc.1)",
    // . . .
#

add the Name field, like so:

{
    "Action": "EditData",
    "Target": "Data/Objects",
    "Entries": {
        "ritzygen.grillbugsteak_GrilledBugSteak": {
            "Name": "ritzygen.grillbugsteak_GrilledBugSteak",
            "DisplayName": "{{i18n:foodname.1}}",
            "Description": "{{i18n:fooddesc.1}}",
            // . . .
        }
    }
}
#

you should probably also add a DynamicTokens group under your Changes list per the CP docs and define some Name: FoodName, Value: {{ModId}}_GrilledBugSteak to use throughout your json file instead of rewriting the name over and over

#

saves on spelling mistakes

#

patch export on craftingrecipes shows my incredible consistency in naming items over the years 😌

heady crest
#

how do i get this thing to work on map tiles??? someone told me once but i forgor

velvet narwhal
#

you have to manually patch farm, which is sketchy because you can't determine what kind of farm a player is going to use

brave fable
#

patch your strings into StringsFromMaps:

{
    "Action": "EditData",
    "Target": "Strings/StringsFromMaps",
    "Entries": {
        "{{ModId}}_String": "{{i18n:world.string}}",
    }
}

and add a 🟣 Buildings layer object in the map with the property Action: Message "MyFullModIdHereSinceMapFileStringsArentTokenised_String"

faint ingot
#

I don't suppose anyone here knows a thing or three about modding fences... I was doing pretty good but the gates are still standard.

lucid iron
#

how sinful do you think it is to do harmony patch on config change

#

i will only do it once, the first time a config is enabled during the game session

brave fable
#

applying harmony patches at random points during runtime sounds pretty hard for people to troubleshoot if it ever becomes an issue

lucid iron
#

yea that is the concern blobcatgooglyblep

#

the reason why i do want to do it is bc the config is meant to be off for most players

brave fable
#

not that it likely ever would. sounds funny and carefree in a destructive sense. go for it ☀️

lucid iron
#

off = no harmony required

fast urchin
#

Does anyone know how to display the number of star tokens in the upper left corner of the screen during the festival? I can’t understand how the game source code is implemented.

brave fable
#

it's pretty simple, check out Event.cs:public void drawAfterMap(SpriteBatch b)

#

if you don't want to harmony patch Event.cs (fair), just add an event handler to your ModEntry's this.Helper.Events.Display.RenderedWorld and draw it there

#

if you do that, you won't need to do the b.End / b.Begin awfulness in the event method

#

simply use e.SpriteBatch.Draw()

fast urchin
#

Thanks, I'll give it a try

brave fable
#

the line b.Draw(Game1.fadeToBlackRect, ...) draws the black box, b.Draw(Game1.mouseCursors, ...) draws the star icon, and Game1.drawWithBorder(Game1.player.festivalScore, ...) draws the text

faint ingot
lucid iron
#

did you patch the entire gate texture

faint ingot
#

yes

lucid iron
#

it doesn't seem to be that hardcoded hm

#

besides inability to make new gate items i mean

#

did you post your json already

#

also try patch export your/fence/texture

fast urchin
#

Thanks to blueberry and guys for helping answer my so many questions

tender bloom
#

Try it out maybe?

lucid iron
#

if you leave the gate open and reload save what happens

brittle pasture
#

if you add a new "Cooking" item it gets added to the Collections page even if it doesn't have a recipe right

lucid iron
#

yea

brittle pasture
#

(good, makes my job easier. I know that sounds insane but trust me)

faint ingot
#

one in the middle is right-click method on vanilla iron gates, as opposed to the one on the left which has the basic wooden fence texture.

grizzled rain
ivory plume
vernal crest
#

Shouldn't verifying game files through Steam replace the xnbs in the Content folder so any modified xnbs will get replaced by vanilla ones?

mighty ginkgo
#

it should

old edge
#

Would someone be able to leave bug report on my mod page? logged myself out

hallow prism
#

hey everyone, someone reported a translation issue on a line with i18n that is using a failback, so the failback should have worked. In wondered if someone encountered such a case recently and if it's a known issue. If not, i'll try to investigate and do proper test soon (if i remember)

brave fable
#

unbelievably buggy mod SDVdemetriums

hard fern
#

bug

tough crater
#

How would I be able to use Dynamic Tokens in a i18n file?

#

In short, I have a dialogue that I want randomized, specifically song names. I have a Dynamic Token earWorms that has the full list of tokens to have randomized: {"Name": "earWorms","Value": "{{Song1}},{{Song2}},{{Song3}},{{Song4}},{{Song5}},{{Song6}}",},

Then for each song token, it refers to an i18n token of the same name {"Name": "Song1","Value": "{{i18n:Song1}}",},

In my i18n file, I'm hoping that I can have the Dynamic Tokens still be used within the dialogue like this:
dialogue.json: "spring_2": "{{i18n:earWormConvo_1}}#$e#{{i18n:earWormConvo_2}}",
i18n/default.json:
"earWormConvo_1": "I have a song stuck in my head right now. It's been like this for hours.",
"earWormConvo_2": "What's the song's name? Oh, it's {{Random:{{earWorms}}}}",

#

and the songs look like this in the i18n:

"Song1": "Gone Guru by Lifeseeker.",
"Song2": "TiK ToK by Kesha.",
"Song3": "Freak On a Leash by Korn.",
"Song4": "Party Rock Anthem by LMFAO.",
"Song5": "High School Never Ends by Bowling for Soup.",
"Song6": "Going Under by Evanescence.",

#

Wait hold on I found an easier way to do it that doesn't use Dynamic Tokens 🤦🏽‍♂️

deep cypress
#

What’s the easier way?

tough crater
#

dialogue.json: "spring_2": "{{i18n:earWormConvo_start}}#$e#{{i18n:earWormConvo_end_{{Random:{{Numbers7}}}}}}",

i18n/default.json:

"earWormConvo_end_1": "What's the song's name? Oh, it's Gone Guru by Lifeseeker.",
"earWormConvo_end_2": "What's the song's name? Oh, it's TiK ToK by Kesha.",
"earWormConvo_end_3": "What's the song's name? Oh, it's Freak On a Leash by Korn.",
"earWormConvo_end_4": "What's the song's name? Oh, it's Party Rock Anthem by LMFAO.",
"earWormConvo_end_5": "What's the song's name? Oh, it's High School Never Ends by Bowling for Soup.",
"earWormConvo_end_6": "What's the song's name? Oh, it's Going Under by Evanescence.",
"earWormConvo_end_7": "What's the song's name? Oh, it's A Moment of Relief from Resident Evil: Code Veronica.",

brave fable
#

there's an easier way than that

tough crater
#

In short, I randomize the last number of the i18n token's names

#

Numbers7 is just 1,2,3,4,5,6,7

#

No need for me to use dynamic tokens in the i18n files

brave fable
hard fern
#

🤔 this is perhaps an odd question, but non-dialogue text boxes that have the player's thoughts, are they in 1st or 2nd person? i want to keep the perspective consistent to the rest of the game...

devout otter
#

The vanilla game completely avoids 1st person narrative, so I'd go with 2nd person.

thorny tiger
hard fern
#

ah

#

nice

#

i dont have to rewrite all that dialogue yahoo

#

well, "dialogue"

thorny tiger
#

"You feel an overwhelming sense of relief as you realise you don't have to redo the text boxes."

brave fable
#

monologue SDVdemetriums

wanton field
#

I must do a big mistake by using Farm Type Manager code. I Set my items, the areas and so on. But everytime i start the game to test it my content.json is overwrited... any guss for me where to look at to fix this?

final arch
#

FTM saves the json all the time again, thats normal

wanton field
#

so how can i use it for my custom map? maybe i dont want to have only mussles everywhere like the overwriting do ...

final arch
#

if you close the game, edit it and then reopen the game it should work fine and not overwrite it

wanton field
vernal crest
frosty hull
#

Hi, i have question
where can i get reposit git MonoGame.Framework.dll by StardewValley?

#

left image: from StardewVallley game & field, globalMatrix & TextureTunkAmount it's have
right image: from git MonoGame original & it's dont have that field

wanton field
royal stump
#

SDVpufferlurk due to the way FTM auto-corrects the file in some places & re-saves it, if there are any misplaced fields due to incorrect {} and such, they'll get deleted after loading

#

I recommend using the HTML editor so it handles that part automatically, but if you upload the non-overwritten version, someone might spot the syntax problems

#

( @wanton field )

wanton field
tiny zealot
woeful lintel
#

is there any way to get the inverse transformation made by Game1.GlobalToLocal?

blissful panther
royal stump
#

I don't see any inverse methods in SDV, but they're also all one-line methods if you want to invert them yourself, e.g.

public static Vector2 GlobalToLocal(xTile.Dimensions.Rectangle viewport, Vector2 globalPosition)
{
  return new Vector2(globalPosition.X - (float)viewport.X, globalPosition.Y - (float)viewport.Y);
}```
woeful lintel
#

oh, it's just a translation

hard fern
#

🤔 i think the issue with marriage dialogue being flat is that there's just not enough of it..? they're not based on heart level or day of the week or anything...

vernal crest
#

Without using dynamic tokens or some other way to insert those conditions into the marriage dialogue it does feel like it's hard to stop it being really generic, yeah.

lusty halo
#

is it okay to update the game? I assume the main critical problems have been fixed (like the map thing)?

vernal crest
#

Depends on your tolerance for broken mods and new errors. I've kept a copy of 1.6.8 for continuing my playthrough since I'll lose a lot of mods by updating, but I've moved to 1.6.whatever for mod dev because the mods I have as dependencies are updated and will probably be updated quickly if they break again.

#

But it doesn't look like things are stable yet so there's still more opportunities for new breaks to happen.

lusty halo
#

eh I I mostly work on my own content packs so I don't have a personal save anymore, just wanted to make sure it won't crash if I use the furniture or fashion mods. xD

lucid iron
#

+1 on backing stuff up

hard fern
#

+2 on backing stuff up

lucid iron
#

The big map problem from release day is resolved I believe (by a revert?)

tiny zealot
#

i have left my GOG install (my main one) on 1.6.8 until the new stuff is fully baked

lucid iron
#

But we still seem to be getting patches blobcatgooglyblep

tiny zealot
#

yeah 1.6.12 is out as of today, and smapi 4.1.5 and CP 2.4.3 (although those do not seem to have fixed the i18n/gender block problem)

hard fern
#

so many patches.. already 1.6.12

vernal crest
lusty halo
#

I see I see, I'll hold off updating for a week or two then. And no I'm not using FF but I plan to check it out when everything works again, whenever that is 🙂

wanton field
#

I fixed my FTM code. But i still struggle with 2 parts in my map making progress... How to get it managed not to make the water walkable? i tried the waves on the Buildings Layer. didnt work for them. AND i have a invisible barricade on the 5 tiles below the bench. I habe no clue why anyone could help with a lil tip where to look closer at?

brittle ledge
#

Think I'll hold off testing for RWE until we're settled

vernal crest
#

It's been fun getting my info from seeing the game and SMAPI versions steadily go up in logs in support lol

near sierra
#

How does viewport move work in the context of events? It says it moves the camera by the specified coordinates for a specified number of seconds, but currently, I have it set up in a way that isn't working the way it should be. For example, if I plugged in 2 for the x-coordinate, 4 for the y-coordinate, and 5 seconds, would it pan until it's 2 pixels right and 4 pixels below its previous position after 5 seconds? Or would it move 2 pixels right and 4 pixels down every second for 5 seconds, thereby ending up 10 pixels right and 20 pixels below its starting position?

woeful lintel
#

Do lights of lamps placed on tables work in the vanilla game?

woeful lintel
#

it's possible to place a lamp on a table, right?

brittle ledge
#

The only lamps I remember in vanilla are floor lamps, but I haven't seen all the 1.6 stuff.

near sierra
tiny zealot
#

it sets a speed for the camera to move on each axis, i think in pixels per frame/tick but it might be some other (related) unit. you can probably get it to line up with the tile grid by making sure you end up moving multiples of 64px but you'd have to do the math and it might not work out exactly

hexed siren
near sierra
tiny zealot
brittle ledge
#

Have you tried stealing a viewport move from a vanilla event to see what it does?

woeful lintel
#

do I have to re-install SMAPI to get the latest version of console commands?

tiny zealot
#

yes

hexed siren
#

There’s a good diagonal one on Seb’s 4 heart

tiny zealot
near sierra
tiny zealot
#

something like that, but it warrants testing. i'm pretty sure the extra parameter true makes it fade in from black

ruby rapids
#

Hi there. Can someone help me understand what 'Exclusive' code in the mod is? I am trying to edit a sprite via CP and I get this error.

hexed siren
woeful lintel
#

!log

ocean sailBOT
#

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

Please share your SMAPI log file. To do so:

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

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

woeful lintel
#

I can now confirm that the latest build of FF still works in the latest SV version on PC

near sierra
woeful lintel
#

damn, they do work, I have to reproduce it...

#

I also have to handle custom Furniture in vanilla slot...

frigid hollow
frozen elm
# wanton field I fixed my FTM code. But i still struggle with 2 parts in my map making progress...

For finding invisible tiles on the building layer, try using the "select same tile" tool and select an empty tile. Then if some tiles are not selected you can erase them. To make the water non walkable, there is an extra water tile that has "passable:f" which you can use to line the edge of the water. or alternatively add a bunch of tiledata with that property along the edge on the back layer

tiny zealot
ruby rapids
#

@tiny zealot Ah! I was having the problem with the two or more trying to load the same target.

tiny zealot
#

(the solution to your problem is to use the appropriate Edit action instead of trying to Load over the other mod; or to edit the other mod to set its priority lower than yours)

#

if you are planning to publish, you'll want to switch to Edit, since editing the other mod's files is only good on your own computer

ruby rapids
#

For context. I am doing the Nyapu-style seaons retextures. (With permission of course). I am trying to get the replacement files to be placed in [cp] RSV seasonal outfits without the user having to go to Ridgeside Village and having to replace the pictures there. So I wanted to see if I could edit the code where RSV seasonal outfits load over any of the Ridgeside Portraits. I am testing Sonny atm. I can't seem to get his basic portrait to load because of this 'exclusive error.' Here is my log btw. https://smapi.io/log/3c5d5f050b6843e5b15d7610c202b1f3

ocean sailBOT
#

Log Info: SMAPI 4.1.4 with SDV 1.6.12 build 24312 on Microsoft Windows 11 Home, with 10 C# mods and 6 content packs.
Suggested fixes: One or more mods are out of date, consider updating them

woeful lintel
#

who removed the numbers from the type field in the furniture data wiki entry? I don't remember where to find the mapping...

vernal crest
woeful lintel
#

oh nvmd, they also are in the Furniture class definition

ruby rapids
#

@vernal crest I double checked the code it is using EditImage my bad.

#

urg. Here I'll just paste my add on to the mods code. "LogName": "RSV Seasonal Appearances - Sonny",
"Action": "EditData",
"Target": "Data/Characters",
"TargetField": [ "Sonny", "Appearance" ],
"Entries": {
//Seasonal Outfits
"{{ModId}}.Sonny": {
"Id": "{{ModId}}.Sonny",
"Portrait": "Portraits/Sonny",
"Sprite": "Characters/Sonny",
"Condition": "{{Sonny|contains= enabled}}, SEASON Spring",
"Precedence": -100

lucid iron
#

!json

ocean sailBOT
#

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

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

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

lucid iron
#

u can post ur whole json there

ruby rapids
#

Thanks Chu2e11

vernal crest
ruby rapids
#

Another added issue is I need sonny to load for all the season except for summer.

lucid iron
#

is this your code or RSV seasonal outfit code

ruby rapids
#

The plan "Sonny" part is mine. The rest belongs to RSV seasonal outfits.

#

*plain

lucid iron
#

but you have this in a separate cp mod correct?

ruby rapids
#

@lucid iron Not sure what you mean. I am using their CP in a different mod (test) folder... If that's what you meant.

vernal crest
lucid iron
#

yea so i think u r run into Load from 2 different mods with Exclusive

vernal crest
#

Because it's unlikely that Rafseazz would make RSV and then make a mod called RSV Seasonal Outfits that doesn't actually work with RSV.

#

This is the part that is wrong. It cannot be "Load". RSV already loads a Portraits/Sonny file and you can't try to load a second one. If you want users of your mod to have the RSV Portraits/Sonny file to replaced with yours you need to use "EditImage" to replace their existing one.

{
      "LogName": "RSV Load Seasonals - Sonny Portraits",
      "Action": "Load",
      "Target": "Portraits/Sonny, Portraits/Sonny_summer, Portraits/Sonny_spring24, Portraits/Sonny_fall27-1, Portraits/Sonny_fall27-2, Characters/Sonny_summer, Characters/Sonny_spring24, Characters/Sonny_fall27-1, Characters/Sonny_fall27-2",
      "FromFile": "Assets/{{TargetPathOnly}}/Sonny/{{TargetWithoutPath}}.png"
    },
ruby rapids
#

Ohhh... so the load is where I went wrong.

vernal crest
#

Yes

ruby rapids
#

Okay let me erase that and test it.

lucid iron
#

i think what you would actually need in terms of dependencies is

vernal crest
#

You should never be using Load with any asset that you're not putting into the game in the first place.

lucid iron
#

nightmaresky.RSVNyapuStyle > Rafseazz.RSVSeasonalOutfits > Rafseazz.RSVCP

brittle ledge
ruby rapids
#

Thanks guys. As a newbie all this code is super confusing.

lucid iron
#

then all u need to do is EditImage over the targets loaded by Rafseazz.RSVSeasonalOutfits

#

dont need to specify any appearance data

#

and then rafseazz is free to change how it works internally if needed

woeful lintel
vernal crest
#

At this point I think Chu Nightmaresky actually is editing the RSVSeasonalOutfits mod because there are no other CP mods in their mod list.

lucid iron
#

yea im recommending alternate setup PecoWant

#

that will be less fiddling with contents

tiny zealot
hard fern
#

SDVpufferflat im back at it into the dialogue mines

ruby rapids
#

I am trying to learn as I edit others code (for personal use at first). Yes, I was working IN their mod, but I'll do my own separate CP them. I'll see how that works.

vernal crest
woeful lintel
vernal crest
#

Without you needing to include any appearance data in your own mod.

ruby rapids
#

@woeful lintel I've read it, but I think I am kind of dumb when it comes to some of it. I am like "okay I think I get it." Then when I code there are Errors everywhere. and I am like WTH.

vernal crest
#

Nah that's pretty normal. Sometimes you've got to do it wrong and be corrected before it will click

#

Like me right now trying to figure out how in the heck do I set up my mods folder so I don't end up with 3 separate copies of my C# mods

wanton field
vernal crest
frigid hollow
vernal crest
#

Nooo why did it build to my mods folder

hard fern
#

:puffer

#

aw

vernal crest
#

Apparently I told it to aSDVpufferbonk

hard fern
#

staring at my ominous "test for now" folder which has all my wips in it

woeful lintel
#

my C# dev/build env is held up together with string cheese

vernal crest
#

I have like 5 folders called ApollosTrickOrTreat

#

And that's ignore my 1.6.9 copies

woeful lintel
#

I'm pretty surprised it's still working after a game update

hard fern
#

SDVpuffersweats what am i even doing here...

vernal crest
#

Which is another 3

ruby rapids
#

@vernal crest Nothing is obvious to me. I did not know you couldn't edit another mod. This would be so much easier if I decided to edit the vanilla game. But Nooo, I have a passion and adoration for others mods (wanting to DL them all). I really like the Nyapu style portraits and I wanted that style for every extension mod I have. The end goal is to make a CP mod for each one to make it easier for others so they don't have to replace the portraits themselves.

vernal crest
hard fern
#

thats the thing, it really is that small

#

it's the full view of the file in vscode

#

😭

vernal crest
# ruby rapids <@560002918351110145> Nothing is obvious to me. I did not know you couldn't edit...

Hmmm I don't actually know if it would be much easier to just mod the vanilla game. The process for editing another mod's assets (in game) is literally identical to editing vanilla assets - you just check in the mod's files for the names of things instead of checking in your unpacked vanilla files. That's awesome about wanting to share more Nyapu portraits with people :) And you'll get there! Once you figure out one the rest will be much easier.

hard fern
#

maybe i should take a break from dialogue...

tiny zealot
vernal crest
#

Time to see if I can hot reload symlinks. Chu don't let me down!

woeful lintel
#

I don't understand how the light of lamps on tables is correct: it's based on the bounding box of the lamp, which is based on the tile position of the table, so if the table is long enough, the light will be completely offset from the lamp (visually)

#

what is the largest vanilla table?

lucid iron
vernal crest
#

LOL I forgot to install literally any other mods

vernal crest
#

Wa ha ha you can! Pink to lime green hot reload via symlink my beauty

shut grove
#

I love that we can have multiple front layers in tiled

woeful lintel
#

damn, I was right, Furniture code is ccompletely busted

#

might ping CA on this one, this is unplayable

lucid iron
#

entire floor lamp on a table...

woeful lintel
#

listen, I took the first one that I found in the Funriture catalogue

vernal crest
#

Wheee I am so excited. Now to fix the smoke colour lest I forget and ship an update with green instead

woeful lintel
#

this will happen with any light Furniture and any table Furniture

woeful lintel
vernal crest
#

Atra thought I was doing furniture when I initially asked for help with it and there was much confusion lol

woeful lintel
#

yeah I remember that

#

particle stuff is confusing anyway so you got a double dose

#

like, this is clearly game breaking

vernal crest
#

To be honest, it's literally just the wizard's cauldron code so I didn't have to figure out anything particle-related at all.

woeful lintel
#

I wonder if someone knows about this

hard fern
#

SDVpuffersweats something tells me that lamp should not be on that table..?

vernal crest
#

(And rokugin pretty much wrote the entire rest of it for me teaching me what to do anyway haha)

woeful lintel
vernal crest
blissful saddle
#

seems like the light-manager is putting the light source at the upper-left corner of the table instead of the lamp

tender bloom
#

I feel like usually when I’ve put lamps on tables it’s been the 1x1 tables

#

Which is probably why I’ve never seen this

hard fern
#

ohh now i get it

#

the light is off center

blissful saddle
#

that was the first thing that I noticed SDVpufferdizzy

#

I don't want to disrupt the current conversation, but I need fix proposals and support...

#

Spoilage has currently a big problem with Automate refering to priority

woeful lintel
#

ough, harmony priority I presume?

blissful saddle
#

maybe, not sure yet...

#

the problem is that if we automate crab cages or mushroom boxes to store items in a chest when they generate, when the new day begins, the items recently stored are already counted as one day old

ivory plume
hard fern
#

maru has been spending too much time with willy?

blissful saddle
#

so Automate first storage them and so Spoilage do its magic counting them

#

I tried to change the spoilage counting from DayStarting to DayEnding, but not working. Seems like Automate gets the items at the start of DayEnding

#

how I could force Spoilage to run before Automate?

woeful lintel
#

You would have to get a hold of the items when they are still in the machine imo

#

maybe there's an event for when a machine produces an item, or you'd have to postfix the production method (no idea how this works)

brittle pasture
#

GetOutputItem is an easily postfixable function for producing the machine output item

#

(Not crab pots though)

whole raptor
brittle pasture
#

(those do something different(tm))

blissful saddle
#

Immersive Bachelor Willy?

#

also not sure if checking the item production would do. or at least I am failing to see it

#

Spoilage checks once a day

brittle pasture
#

Sorry, it's been a while since I tuned in on the Spoilage discussions but why is it spoiling already outputted items a problem?

blissful saddle
#

mushrooms and fishes generated by crab pots and mushroom boxes gets one day old when generated

brittle pasture
#

Ahh like when you immediately check them they're old? Got it.
Might be something in Spoilage logic then, crab pots and mushroom boxes should not toss their stuff into the chest before morning starts

blissful saddle
#

that is if automated to storage in chests

#

so it is a problem with Automate, because that's what does it

#

Automate checks by tick though

#

I need to force Spoilage to runs before Automate stores crab pots and mushroom items on the chests. OR check if they are recently stored

#

I can't see a way to do either

brittle pasture
#

huh, do "ready in the morning" machines really output during the night and Automate then stuffs them in chests before DayEnding?

blissful saddle
#

probably before DayEnding is called, since I changed Spoilage to run at DayEnding and it didn't helped

hallow prism
brittle pasture
#

yeah my apologies, if that's really how morning machines works (can't check rn) then it is weird lol

blissful saddle
#

of course it is not a problem only to crab pots and mushroom boxes. I would like a way to make it a fix to any machine that produces once a day

woeful lintel
#

if spoilage increments age at day start and these machines produce before the end of the previous day, you could intercept stuff when it's produced and before automate moves it and give it a -1 age

#

I can't see any other solution, because technically, these produces were produced the previous day, so they are a day old

blissful saddle
#

and how I would do it without specifically checking for crab pots and mushroom boxes at machine output?

woeful lintel
#

no idea, my specialty is Furniture, not Machines

#

you have to look into the code

blissful saddle
#

maybe should change how these kind of machines produces in general

woeful lintel
#

sounds like a lot of work

#

alright, gotta go to bed, good luck with that!

blissful saddle
#

would need a prefix harmony patch

#

thanks a lot! have a good rest

brittle pasture
#

...huh, actually
what functions do you use for your spoilage check

#

like Utility.ForEachItem?

blissful saddle
#

It's not mine, it's Aedenthorn's yet

brittle pasture
#

I think I know what's happening, and it's not because morning machines produce in the night

blissful saddle
#
        private void GameLoop_DayEnding(object? sender, StardewModdingAPI.Events.DayEndingEventArgs e)
        {
            if (!Config.ModEnabled)
                return;
            spoilageDict = Helper.GameContent.Load<Dictionary<string, SpoilData>>(dictPath);
            foreach (var kvp in Config.CustomSpoilage)
            {
                spoilageDict.TryAdd(kvp.Key, kvp.Value);
            }

            Utility.ForEachLocation((loc) => {
                foreach (var obj in loc.objects.Values)
                {
                    var chest = (obj as Chest) ?? (obj?.heldObject.Value as Chest);

                    if (chest is not null)
                    {
                        SpoilItems(chest.Items, chest.fridge.Value ? Config.FridgeMult : 1);
                    }
                }
                return true;
            }, includeInteriors: true);
            SpoilItems(Game1.player.Items, Config.PlayerMult);

        }
#

it is in 1.6.8 yet

#

I intend to update it to 1.6.9 to get ForEachItem instead of checking all map locations for chests

#

for now it checks all storages and does it's magic of increasing Spoilage Days to each item it encounters there

brittle pasture
#

Ah, nvm then, that's not what I was thinking of

blissful saddle
#

I intend to change it so, when an item is firstly stored it gets a 'life' value

brittle pasture
#

remind me in 9 hours to check morning machine produce time

patent lanceBOT
#

[remember what they said in anger management...deep breaths...] YES I WOULD BE SO HAPPY TO ASSIST (#6348904) (9h | <t:1731030922>)

hard fern
#

😭

blissful saddle
#

indeed, a good way to do it is checking for every item every tick... and if the item exists for a number of ticks, it gets one day old

#

yet I would need to update for 1.6.9 to be able to see if they are stored in a chest or somewhere else

shut grove
#

that's normally a very resource intensive thing as you get more items doing that.

blissful saddle
#

and also learn how game gets the time right with each tick, since there are places that changes how game clock changes

shut grove
#

the more items you're checking each tick the worse the performance impact would get

blissful saddle
#

I am very aware of this

lucid iron
#

You don't do it on tick, there's a time changed event

#

It's not great but much better than tick

blissful saddle
#

OneSecondUpdateTicking counts one second irl or in game?

brittle pasture
#

irl
use timechanged

blissful saddle
#

if I use timechanged, I would have items without 'life' for 10 min ingame before it changes

#

could account for that though

lucid iron
#

There's a chest changed event which will handle case of automate at least

#

Won't handle ppl leaving machines uncollected

shut grove
#

I definitely learned that tick based stuff is very tempermental as well when I did some unreal dev for my game. the worse the performance the longer between ticks.

blissful saddle
#

yeap, ticks accounts for processed time

shut grove
#

I had a character glide script that got really long with bad performance, but I wanted it to last a specific time, so I swapped it to deltatime instead

#

using deltatime made it so my glide would last ~3 seconds every time, instead of 3 seconds on good performance 6 seconds on bad

blissful saddle
#

oh, blueberry updated LoC. Maybe I can migrate to 1.6.9 now

blissful saddle
#

sounds like it's time for me to migrate and do my new Spoilage

wanton field
blissful saddle
#

I yet need to publish my Night Owl Plus, but I am eerie of taking away the mod name from the original author

wanton field
near sierra
#

I'm trying to work on a trigger action that will start an event when a quest is cleared, but the only built-in triggers listed under the trigger actions page on the wiki are related to a day ending or starting, or arriving in a specific location. Is there a built-in trigger action for clearing a quest or seeing an event?

frigid hollow
#

there's a questadded one, hmm

near sierra
brittle pasture
#

you can set a mail flag on day start gated on events seen/quest cleared

hallow prism
near sierra
hallow prism
#

so either you do with the limit of vanilla ones (which may then have a bit of delay) or use a custom one (added by a mod or a C# component)

brittle pasture
near sierra
final folio
#

Hi, Is there any way to convert the characters.js file to Characters.xnb?
I was able to uncompress it with xnbhack but I need to compress it again to update my mod for the switch version

lucid iron
#

You need to use something other than stardewxnbhack which is 1 way

brittle ledge
#

Wait, I'm thinking special order.

hallow prism
#

you can do a lot of stuff if the quest has a dialogue at the end

brittle ledge
#

Answer should still be yes, I just don't know ho--or listen to Lumi actually

brittle pasture
#

huh apparently there is no condition for quest cleared

hallow prism
#

i usually set a flag that way when i need something, but that's because that was doable before (and still is) but now there's also the action stuff that should work too

iron ridge
#

i know it supports the 1.6 formats

hallow prism
#

yeah sadly the game doesn't track quests when completed except with a CT but it's not reliable

lucid iron
#

Since 1.6.9 added the quest event stuff

hallow prism
#

the quest event stuff?

lucid iron
#

It might be easier than before to expose that to content mods

lucid iron
brittle pasture
#

for now seems like we need to set flag in quest end dialogue
and then gate an event behind that flag directly, shouldnt need trigger actions for that

near sierra
#

For now, I'll try setting the letter as a quest reward, then set the event to trigger if the letter is in your mailbox.

round thicket
#

Hi, guys so i'm trying to update a content patcher mod that edits Jas's image like 3 years ago since one of the more recent updates seems to have broken it. I've been trying and testing for about an hour now and can't seem to find the issue, all json files have been validated, and I've been looking through the Content Patcher documentation, but I'm still just kinda lost anyone able to tell me what silly stupid mistake I'm making?

#
{
  "Format": "2.4.0",
  "Changes": [
    {
      "Action": "EditImage",
      "Target": "Portraits/Jas",
      "FromFile": "assets/Jas.png",
      "FromArea": {
        "X": 91,
        "Y": 46,
        "Width": 11,
        "Height": 5
      },
      "ToArea": {
        "X": 91,
        "Y": 46,
        "Width": 11,
        "Height": 5
      }
    }
  ]
}
final folio
iron ridge
#

have you tried extracting it via xnbjs

round thicket
#

I'm trying to have it be so my mod is compatible with the poltergeisters seasonal outfits mod, It worked before but it seems to not work now

iron ridge
#

bc it works fine for me

#

if i unpack it and try repack

final folio
final folio
iron ridge
#

yes

final folio
#

Could you show me how you do it please?
It is the only file that is giving me problems....

#

Nvm, i fixed My error

#

Really

#

VERY THAKSSSSS FOR THE INFO

#

❤️‍🩹

round thicket
#

the edit image function for content patcher seems to not be working, I feel as though I am probably doing something wrong, but can't find any flaws in the files...

lucid iron
#

!json

ocean sailBOT
#

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

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

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

lucid iron
#

!log post your log too, could be that another mod is overwriting your changes

ocean sailBOT
#

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

Please share your SMAPI log file. To do so:

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

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

shut grove
#

would different colors of a fish need to be different fish altogether?

#

was debating about adding an Axolotl in a couple colors

hard fern
#

I don't think there's any "dye" feature for fish

shut grove
#

so I'd have to add a seperate fish for each color then\

zenith robin
#

As far as I know you would have to have a separate item for each.

lucid iron
#

Yeah it's like eel and lava eel in vanilla

shut grove
#

was thinking 3 colors, and 1 legendary axolotl that's cyan and pink

calm nebula
#

Might take some c#

grand lantern
#

Hey all: I'm wanting to try to make a farm map for the first time. What is the first place i should go to get started on learning how?

lucid iron
#

But fish data doesn't let u define color

calm nebula
#

Can itemspawn do colored itrms

ocean sailBOT
shut grove
#

I have a cyan and pink axolotl plushie named Axl, so the legendary fish would be based on them

lucid iron
#

Item spawn mostly spawns Item rather than ColoredObject

grand lantern
lucid iron
#

It's probably worth making a general one for mods to use though

#

Perhaps it could go in someone's machine framework

brittle pasture
#

Patching getFish is always a fun time

tender bloom
#

why are we patching getfish this time?

brittle pasture
#

funi colored fish

tender bloom
#

ahhhh

calm nebula
#

I thought itemspawn now supported colors

#

Or was that specific to machine data

tender bloom
#

I was thinking 1.6 now cuts out most of the getfish patching

shut grove
#

I just had the idea of having color variants of a fish

brittle pasture
#

oh yeah location fish data is an item query right

calm nebula
#

Yup

brittle pasture
#

yeah I was mistaking it for something else

#

in that case no need for a patch

lucid iron
#

oh it does now DokkanStare

#

yea i was just look at wrong thing

shut grove
#

I might make my legendary axolotl be caught in my custom map.

brittle pasture
lucid iron
#

i was thinking of preserves bolb

brittle pasture
#

I'd make the legendary variant its own fish

brittle pasture
#

looks like I also gotta work around this in my spoilage-adjacent mod

shut grove
#

thank you Selph ^.^

blissful saddle
#

I migrated to 1.6.9 successfully. I am now trying to make an unofficial update of Better Friendships.

I got the source, built the solution, checked for errors (had none) and compiled the code.

Yet SMAPI returns this:

15:25:21    ERROR    SMAPI       Skipped mods
15:25:21    ERROR    SMAPI       --------------------------------------------------
15:25:21    ERROR    SMAPI          These mods could not be added to your game.
15:25:21    ERROR    SMAPI          - Better Friendship 1.1.2 because its DLL couldn't be loaded.
#

any thoughts?

brittle pasture
#

the full log with trace should show you the reason why it's not loading

blissful saddle
ocean sailBOT
#

Log Info: SMAPI 4.1.5 with SDV 1.6.12 build 24312 on Microsoft Windows 10 Pro, with 40 C# mods and 31 content packs.
Suggested fixes: One or more mods are out of date, consider updating them

lucid iron
#

check your trace for this

blissful saddle
#

checking

#

so the problem is in the package Runtime.Caching?

calm nebula
#

Did you tell smapi to package that

#

Fwiw smapi stopped using that package last year because it performs horribly

lucid iron
#

that other person said BetterFriendship has a nuget reference to it

#

i am unsure what happened in the end

calm nebula
#

Nuget reference but you still have to tell smapi to package

#

(The history is that smapi also used to use that package but cut it because it causes...stalls of some sort.)

blissful saddle
#

how one does it?

#

telling SMAPI to package I mean

lucid iron
#

maybe just change to this mod

#

similar enough niche

ocean sailBOT
#

Log Info: SMAPI 4.1.5 with SDV 1.6.12 build 24312 on Microsoft Windows 10 Home, with 19 C# mods and 6 content packs.
Suggested fixes: One or more mods are out of date, consider updating them

round thicket
#

These are all the files jsons are error free, yet my patch still seems to not be working

frigid hollow
#

you're missing the patch mode or whatever it was, right?

#

well, it's replace by default so shouldn't actually be an issue

blissful saddle
round thicket
#

The vanilla version works as intended, but this one is supposed to be compatible with poltergeisters seasonal outfits, all my mod does is replace a small section of Jas's portait to give her a different smile

#

but for some reason it's no longer working, as it was like a year ago when I made it

wanton field
frigid hollow
#

patch summary "Portraits/Jas" then?

uncut viper
lucid iron
uncut viper
#

they linked 3

round thicket
#

I linked all 3 of em

#

content is below that one

frigid hollow
#

seasonal cute Might be using appearances? since from the log it's loading in a Portraits/Jas_Winter_Indoor

round thicket
#

hmmm, okay then is there documentation on how I could go about overwriting that in only a small area like I was before?

frigid hollow
#

well, you'd be targeting the images seasonal cute is loading in

uncut viper
#

you'd just need to target the right one

frigid hollow
#

so you'd have to look at their content.json to see what they are

round thicket
#

okay so it's the same

uncut viper
#

pretty much
You'd need to do it for every different outfit they have in their appearances that use a different target

round thicket
#

okay, i'll try and see if I can figure that out lol

uncut viper
#

Since outfits aren't typically done by editing the base portraits with when conditions anymore in updated or new mods

frozen elm
round thicket
#

Thank you for the help!

tropic lichen
#

hey guys, is it possible to add a variant to the torch with Alternative textures? most mods that alter the torch are for content patcher only so im just wondering

blissful saddle
distant radish
#

I think the answer is no, but can Big Craftables produce Rings or Weapons?

#

It is to say, can a custom machine produce an object which prefix is not (O)?

iron ridge
calm nebula
#

The answer to the first question is no

#

The answer to the second question is yes

#

(You can only produce things that descent from Object. So Furniture is okay.)

brittle pasture
calm nebula
#

But rings and weapons are....ah okay

brittle pasture
#

(if you need a "copy enchantment" feature let me know)

#

(wait, can weapons be machine input in the first place, I haven't checked)

round thicket
uncut viper
blissful saddle
# calm nebula https://github.com/atravita-mods/StardewMods/blob/2017c2ce5f804d706db34f9a5cbdf0...

It seems to be working as intended now. thanks a lot.

I had it changed to this:

    <PropertyGroup>
        <BundleExtraAssemblies>System</BundleExtraAssemblies>
        <IgnoreModFilePatterns>
            \.xcf$, <!-- GIMP files-->
            ^Microsoft.(?!.*(Toolkit.Diagnostics.dll)), <!-- Everyone but MS.Toolkit.Diagnostics-->
            .*[/\\]Microsoft.*, <!-- CodeDiagnostics in a bunch of languages?-->
            ^JetBrains,<!-- Should never be bundled.-->
            ^Skia <!-- Skiasharp is included with the game-->
        </IgnoreModFilePatterns>
    </PropertyGroup>

In short, I had to take out System.*.dll$, and ^runtimes[/\\].*, on <IgnoreModFilePatterns> to make it work.

Should I worry or do something else to make it cleaner and avoid importing too many Assemblies?

distant radish
uncut viper
#

your patch will look the same it will just target e.g. Portraits/Jas_Winter_Indoor instead of Portraits/Jas because the other mod has an appearance that sets their portrait to use the winter_indoor version instead

round thicket
uncut viper
#

your targets should not have file extensions

calm nebula
tough crater
uncut viper
#

you need to make sure you are editing what they are targeting, not what file they are loading from

round thicket
#

okay, I think I get you now

uncut viper
#

they should have something written for the "Portrait" and "Sprite" fields inside the "Appearances" section for each outfit theyve added, thats what you want to target for Portraits/ and Characters/ respectively

#

so just copy what they wrote in there

#

if you are using the exact same image to edit all of them, you can also just put them all in one patch by putting them all inside your Target and separated by commas

#

assuming that they all use the same fromarea and toarea too ofc

round thicket
#

it does, it quite literally just changes her smile expression on all of em

fathom hound
uncut viper
#

where did you even get that link from

fathom hound
uncut viper
#

also editing in a ping after the fact wont ping someone

fathom hound
#

Ik - feel bad for pinging when he's away ><, ill do it later if he doesnt see

uncut viper
#

right but like what page did you get that link from? decompiling 1.6.9 is the same as decompiling any other version btw

uncut viper
velvet narwhal
#

oh is that the private git

fathom hound
#

a while ago

#

Ah

uncut viper
#

that would make sense

#

why it doesnt work, that is

#

it probably does work if you have access to it. which i do not so i cannot tell

#

does that repo even tell you how to decompile the game? i thought it just was the decompile

lucid iron
#

what is your git account

calm nebula
#

Yup

#

That's the private git

#

You can ask Pathos for access

#

(Aside: I'm still purple!)

#

Hopefully junimos do not notice the purple

velvet narwhal
#

if you mean trying to see the difference between 1.6.9 / 1.6.10 / 1.6.11, i don't think 10/11 have been update

uncut viper
#

why is bouncer givin out the private repo link to people who dont have access

calm nebula
#

Please forget to remoce event roles until the next event

uncut viper
#

(i know they cant access it anyway but thats part of the "well why then")

lucid iron
#

i was ask account cus

#

anaira has the role and levels and therefore can obtain access to this repo

#

but maybe forgor to log into github acc

calm nebula
#

It's not automatic, you have to ask Pathos for access

#

Ping him with your github user

rancid temple
#

I think chu was asking if she has access but just forgot to sign into the right account

uncut viper
#

yvw!!

#

glad you got it working SDVpufferheart

round thicket
#

Now I have to do my other one, but that'll be easy now

final folio
#

How to fix this kind of map errors?
In the tbin everything seems to be in order

#

Ignore the floor I was trying to put the water on the floor and the same thing happens.

#

It is as if the texture does not load

ivory plume
#

When the game version changes, you need to re-launch SMAPI so it can update a file. The current red message is scary and technical, so we often have confused players reporting it as a bug or crash.

Any thoughts on this new version?

rancid temple
#

I like green, it's eye catching without feeling like something has gone wrong lol

desert vapor
#

I like the green as well, and I think the message is nice and concise

rancid musk
#

I have to admit, I am curious why SMAPI can't just re-launch itself in that situation

desert vapor
#

I'm curious about that too, does it have to do with Steam's command line params?

calm nebula
thorny tiger
calm nebula
#

Just hardlink smapi.deps.json to stardew.deps.json

#

(I do this on my Linux partition)

#

But I've tested kt on Windows too

rancid temple
#

Will that cause any issues with having multiple saved versions?

calm nebula
#

Hi Pathos!

rancid temple
#

I don't know anything really about links, is it just a reference to a file path?

ivory plume
#

The symlink approach is possible, though I'm hesitant given all the issues Vortex causes with its symlinking.

#

But in the end it's just 'launch SMAPI a second time once every two years', so I don't think it's worth a lot of complexity to automate if we can just have a clear enough message to avoid confusing players.

lucid iron
#

is there any chance that smapi could fail to update the deps.json file?

#

ig it'd just be a normal red exception in that case bolbthinking

sonic mortar
ivory plume
rancid temple
uncut viper
rancid temple
#

Oh yeah, Nexus crackin' down on that stuff now

tardy adder
#

Muehehehe I finally updated stuff to keep messing with the weather >:3
Time to figure out what this 'Critters' property is in CS, and ze new trigger actions :D

#

Aka I will break something soon

lucid iron
#

you might be fine if you omit the mentions of community goal but post ur kofi

sonic mortar
#

its entirely optional to support us and the mod is available to all people for free regardless if they paid something or not, its just a way for us to thank the people that supports our work <3

uncut viper
#

you will not be fine, no

lucid iron
#

as it stands now it's definitely solicit mod update for money

rancid musk
#

Right, I still need to document Critters

rancid temple
#

I think having any offsite donation links is no longer allowed

uncut viper
#

you cannot advertise or link to places where you do advertise features in return for money

#

at all

lucid iron
#

doomed then DokkanStare

uncut viper
#

stretch goals are specifically called out in their donation rules

#

among other examples

thorny tiger
#

does anyone else read kofi as ko fi and not coffee

thorny tiger
#

like I know it's coffee

#

but

rancid temple
#

I never thought it was coffee lmfao

lucid iron
#

koh fy

#

i think the buy me a coffee(kofi) gave enough context for my brain

uncut viper
#

"Do not overtly or covertly hint at the possibility of further development of your files in exchange for donations."
"Do not offer donations in exchange for files, updates, or assistance."
"Do not attempt to advertise the donation options exaggeratedly or otherwise include excessive usage of donation reminders in your files and/or file page descriptions."

tardy adder
rancid temple
#

People asking to be bought a coffee on kofi makes more sense now though

hard fern
#

I read it as (co as in co-worker, and fi as the fee in fee fi fo fum)

thorny tiger
#

like I'm fully aware it's coffee but I can't read it as not coe fee

rancid temple
#

This is like gif, I'm never gonna read or call it jiff

lucid iron
#

jraphics

rancid musk
thorny tiger
#

ok but it being jif just doesn't make sense

rancid musk
#

I still need to publish a MNE update.

thorny tiger
#

this is one of those situations where the person who created it ABSOLUTELY can be wrong about it

#

and if you disagree with that premise

#

I cite jk rowling

ivory plume
#

(Linking to donation sites is still fine, you just can't make mod files/development/updates conditional on receiving donations.)

tardy adder
hard fern
#

it's like being named Geoffrey

thorny tiger
hard fern
#

lol

tardy adder
#

Thank you for all your hard work my dear modders ><

thorny tiger
#

for legal reasons that's a joke

uncut viper
rancid musk
#

In the future I'd like to have custom critters, but lazy (and I want to check if some other mod has done the hard work and I can just have a soft dependency)

lucid iron
#

khloe do you mind if i make an alternative mod to almanac

tender bloom
#

there was custom critters

uncut viper
#

they dont even allow linking to a discord if paid modding assistance/creation is discussed in that discord

tender bloom
#

idk if it made it to 1.6

hard fern
#

ko-fi has a "free" option available for downloads i believe, but

lucid iron
#

it is another 2025 soon™️ thing but i do feel stardewui is suited for a mod like that

rancid musk
#

It's a free country, you can make a wiki-like mod if you like. Almanac is sort of an alternative to Lookup Anything in the first place.

lucid iron
#

3 cakes DokkanStare

rancid temple
#

n cakes

tardy adder
#

Hmmm there Custom Companions but I guess that is a bit different SDVpufferthinkblob

rancid musk
#

n+1 cakes

velvet narwhal
#

trinket trinker

uncut viper
lucid iron
#

trinket tinker isnt critters

rancid musk
#

I am still working on Almanac, for the record. Just... slowly, lol

lucid iron
#

technically a lot of the Companion code could be repurposed for map critters

velvet narwhal
#

but what if i skin the clone-jutsu SDVpufferthink become a disney princess

lucid iron
#

but rn u can only have a companion as a result of equipping a trinket

rancid musk
#

And I've considered playing with StardewUI for it but honestly it's all procedural UI and I don't think I'd get enough out of it for Almanac to be worth a dependency.

ivory plume
lucid iron
#

yea its difference between starting new mod with a dependency in mind

#

vs refitting old mod to it, which might as well be writing new mod

ivory plume
#

Essentially Nexus wants players to donate because they want to support the mod author, not because they're buying something that would normally be offered for free.

uncut viper
#

whether nexus will actually notice entirely depends on whether nexus staff happens to find it or someone reports it, and without those happening, you might be fine, so long as your team (talking about Bluejay here) is aware that it is, without a doubt, against nexus rules as is

#

and people in this discord have had their mods taken down for kofis before too, so there is precedent

ivory plume
#

(I had to change my Patreon tiers a long while back to comply with Nexus policies for reference.)

thorny tiger
tardy adder
#

Oh wait custom critters KOd for 1.6.9+ nauuuur, time to learn C#

thorny tiger
#

f

lucid iron
#

kath what r u trying to do Bolb

tardy adder
#

Oh I just love critters, I am on a tangent

#

I am doing weather tho

ornate trellis
#

hm, that nexus donation thingie i didnt pay too much attention to so far but now ive been thinking...templates probably count as mod assistance then too, huh. thonking maybe i should change my ko-fi link to just my general pageg

sonic mortar
uncut viper
#

Bluejay, its specifically the stretch goal thing here that will get you into the most nexus trouble

sonic mortar
#

we had an idea for a community goal among our supporters on different site from some friends creating content for another game (Planet Zoo) where people put in their descriptions that they can be flat out commissioned for certain mods

ivory plume
#

I'm not sure it's been tested; I'd be curious to see what Nexus thinks of the stretch goal approach, but I suspect they would count it as requiring payment for part of the mod (even if everyone gets it after the initial players pay for it).

uncut viper
#

i have no personal stake in this, im just telling you what nexus rules are

hallow prism
#

yeah, nexus can be ... obtuse sometimes

hard fern
#

🤔 a stretch goal would still mean someone has to pay for it

uncut viper
#

i cant imagine them not counting it under "Updates in exchange for donations"

hallow prism
#

stuff like wording not clear enough can be a reason for them to be suspicious

sonic mortar
latent mauve
#

You'd probably have to frame it as "the stretch goal just means we release it faster to everyone, but everyone gets it when it's ready otherwise"

ornate trellis
#

just in case i changed my link to my ko-fi in general instead to directly to the template, that should be fine, right

hallow prism
#

they don't look at everything

#

they may miss thing that aren't the focus

velvet narwhal
#

considering they don't even want commissions to be advertised, they'll probably not hesitate to take it down tbh

hallow prism
#

i agree that "give us money to get more content" even if it's not your intent may get you into trouble

#

(they may just ask to remove link/change wording)

uncut viper
#

"Do not overtly or covertly hint at the possibility of further development of your files in exchange for donations."
this one also specifically seems to be directed at things like stretch goals

hallow prism
#

why is it that sometimes smapi gives me a nice link of the mod to update when i upload a mod and sometimes not?

uncut viper
#

nexus has a very "no money involved in modding please" viewpoint for the most part

#

(not the entire part, obviously. but most part)

hallow prism
#

i tested with the same list of mod and got : broken link, partial link, partial link, no link at all

sonic mortar
hallow prism
#

and i can't tell why

ornate trellis
#

tbh im just glad we got such an active and helpful community that does point out things like these because its all the legal sounding stuff that gets my non-native-englisch brain spinning in perfectly understanding every bit of it, pff

latent mauve
#

The policies changed to be more explicit recently, right?

hallow prism
#

it was already in place

uncut viper
latent mauve
#

ah

hallow prism
#

but again, nexus acts on report, usually

uncut viper
#

they updated the rules for things like Bethesda Modworks or w/e where its officially sanctioned

velvet narwhal
#

just because (1) person gets away with it, doesn't mean the whole community will, we're not saying it's wrong of you to get monetary incentive we're saying that nexus will not hesitate to take yours down if it's reported that you have stretch goals

blissful saddle
#

seems like System.Runtimes.Caching requires System.Configuration.ConfigurationManager and System.Security.Cryptography.ProtectedData, so had to add these at the unofficial update since without them SMAPI was yet screaming the dll could not be loaded.

I just released the unofficial update and let's hope no one have big problems with these.

uncut viper
#

the "Publisher-Endorsed Paid Modding Rules" section on the donation guidelines page is new as of... idk. a month ago maybe?

hallow prism
#

basically you're playing a moderation roulette. You may be fine for months, or you may get a report tomorrow

hard fern
#

it's whenever someone at the mod team noticies 🤷‍♂️ which could be any moment

ornate trellis
#

wasnt it that recently two people in here had to change something bout their ko-fi because of the rules

hallow prism
uncut viper
lucid iron
#

i assume you have your update keys all setup yea

velvet narwhal
ivory plume
hallow prism
#

sure, i'll try

rancid temple
#

Not me just keeping the list of out of date mods open and manually navigating to them on Nexus lmao

velvet narwhal
#

Better Friendship (Updated) was one i had to dig into the trenches for iirc but i think that's a forum post

uncut viper
#

possibly! like i said, thats just the one i remembered

blissful saddle
uncut viper
#

i dont remember em all

ornate trellis
#

oh yeah i think those were the two i also remember

ocean sailBOT
#

Log Info: SMAPI 4.1.5 with SDV 1.6.12 build 24312 on Microsoft Windows 10 Famille, with 54 C# mods and 67 content packs.
Suggested fixes: One or more mods are out of date, consider updating them

#

Log Info: SMAPI 4.1.5 with SDV 1.6.12 build 24312 on Microsoft Windows 10 Famille, with 54 C# mods and 67 content packs.

#

Log Info: SMAPI 4.1.5 with SDV 1.6.12 build 24312 on Microsoft Windows 10 Famille, with 48 C# mods and 59 content packs.
Suggested fixes: One or more mods are out of date, consider updating them

hallow prism
#

i'm trying, governor

rancid temple
#

This part?

blissful saddle
#

I think it just gives links for updates if there are updates registered here:
https://stardewvalleywiki.com/Modding:Mod_compatibility

Stardew Valley Wiki

Sometimes a mod will stop working due to a major game update; SMAPI automatically disables incompatible mods. This page lists known SMAPI mods and their compatibility with the latest versions, and explains how to fix broken mods if possible.

hallow prism
#

(of course the state of update and so the number of stuff is varying because i am in process of updating, and i really love and appreciate the convenient list, which is why i'm sad when it's not here. But i do like it when it's here)

latent mauve
#

Yeah, you've got 19 mods in the purple for that last log

hallow prism
#

this is the weirdest one

velvet narwhal
#

oh isn't the top for c# mods?

hallow prism
#

no

rancid temple
#

Oh the top part lol

hallow prism
#

you see the cp one is a big list of content packs

rancid temple
#

I've never used the log site for this, didn't really consider it before

hallow prism
#

so basically, it's super convenient, but i am also unsure of what cause the difference

#

it may be normal on some cases (but i feel the "consider updating (empty list)" may not in any cases 😄 )

rancid temple
#

Yeah, missing the suggested fixes section seems fine, but having it and it being empty seems wrong for sure

hallow prism
#

(anyway i am perfectly aware there's more urgent stuff to deal with. It's just such a cool feature that i'd like to know what enables it)

tardy adder
#

I forgot I was mid writing dialogue, there is a hell scene in my notepad

#

And I forgot marriagedialogue was a thing o(<

hard fern
#

I wish there was a device that could suck out all the ideas from your brain and turn them into functional dialogue lines that you could load into the game

tardy adder
#

I need that

proven spindle
#

Theoretically you could set up one of those voice transcriber things to write down all the lines so you just have to say them out loud, then make a script that formats them

#

But that's probably overkill lmao

velvet narwhal
#

"Hey Google, take notes for me- In this essay I--"

brittle ledge
ivory plume
# hallow prism

Seems to be a log parsing issue; I'll need to look into that when the dust settles on 1.6.9.

hallow prism
rain basalt
#

ok im trying to inject a map between two existing maps would i
A: add warps hoping it replaces existing
B: replace warp map properties with whole string
C: try to null old warps and add new ones
whats your opinion on best practice?

lucid iron
#

usually u use the cp EditMap AddWarps feature

rain basalt
#

would the add warps replace the existing ones ?

lucid iron
#

no i dont think so

teal bridge
lucid iron
#

in case where you want to remove warps, u need to do MapProperties

rancid musk
#

I mean if I make another UI heavy mod I'd probably grab it.

#

But Almanac is mostly just... a few procedurally placed buttons on a rich text widget.

teal bridge
#

(For the record, that was tongue-in-cheek; the thing's only officially been out for a week, after all)

rain basalt
#

hmm so one to remove warps with properties and the null comand and one to add warps so two seperate actions

lucid iron
#

i think they can go on 1 Action

#

but hold on let me double check

#

yep map properties happen first when both it and add warp are on same action

teal bridge
#

Does Rich Text in Stardew context imply some entire custom typography system? I'm curious because the SpriteFont doesn't have any notion of bold, italic and so on. There's only the "fake bold" you get by drawing at the 4 neighboring pixel positions.

#

Oh, I guess it's also colors.

rancid musk
#

I don't have anything for italics. Just whatever I can manage with the built-in text rendering.

#

It's pretty basic, but it lets me make large areas of text more interesting to look at.

#

I also need to fix my word wrap algorithm at some point but... lazy.

teal bridge
#

That reminds me that I have forgotten to add text shadows for like the 15th day in a row...

lucid iron
#

oo i didnt know almanac had content packs

rancid musk
#

Kind of a moot point right now. The old Almanac didn't support much and the new Almanac is going to not really use any of the current documentation.

#

New Almanac is designed to allow entirely custom books.

teal bridge
#

It is a neat system with typography. Given convention, I should probably figure out a way to just have a literal HTML syntax inside labels.

rancid musk
#

Way back when I thought about HTML+CSS but then I realized I'm not a psychopath and I don't have that kinda time

#

Maybe if there was a library for that I could start with but I didn't find anything

teal bridge
#

Yes, I can certainly understand why you didn't go there.

#

I've already got the markup parser and the DOM so all I'd really need to do (and I realize the word "all" is doing a lot of heavy lifting here) is add a rich text widget that takes children instead of a single text string and processes them into a single layout.

#

Although maybe more like the way XAML <Span> works so I don't have to deal with arbitrary nesting, because that would suck.

calm nebula
#

Ahhh! I'm orange!!!!

#

Ahhh!

rain basalt
#

lol you have been caught

proven spindle
#

I can no longer pretend to be a shiny cheeto SDVpufferwaaah

gaunt orbit
#

welcome back to doritoland

proven spindle
#

One day I'll talk enough to get that role lol

lucid iron
#

ur a cheeto in my heart

rancid musk
#

That's a very unhealthy place to have a cheeto

lucid iron
round dock
#

oh shoot orang back

rancid musk
#

I could get a lot of use out of my emote today.

lucid iron
#

made with real C#

gaunt orbit
tender bloom
#

Noooo

#

Well, red is ok

proven spindle
#

The real meaning of c# is 'sharp cheddar'

gaunt orbit
#

cheddar (sharp)

#

but that would mean we also have cheddar ++

rain basalt
#

so was C++ the spicy lime version lol

uncut viper
#

why the hell is atra orange

gaunt orbit
rain basalt
#

same so hard to find sometimes

#

i bread my fish with it

gaunt orbit
#

chile lime is such a good combo

round thicket
#

Can anyone tell me why my dialogue isn't being read correctly? im tring to use the $b command to indicate a pause, but it keeps reading it literally. the other line I wrote works fine, it's just this one that reads it incorrectly which is beyond confusing...

uncut viper
#

probably missing a #

#

yeah you need # before those on your first two dialogues

calm nebula
tender bloom
#

Wait really

#

I'm red to me

calm nebula
#

Now you're red to me

#

😦

#

How will we confuse people now

rain basalt
#

im happy with my mod progress but dang the amount of trial and error to just get one small section perfect

tender bloom
#

We could try to find people with red/orange colorblindness

calm nebula
#

Is that a thing

#

I thought it was red/green and yellow/blue

rain basalt
#

theres many types now