#making-mods-general

1 messages · Page 97 of 1

velvet narwhal
#

i can now tell the difference between atra and elizabeth

agile kestrel
#

question, in regard to getting donations as a mod creator, is that allowed to be discussed here?, ive been thinking of ending my hiatus and starting to make more mods, and I wanted to know if its worth to get donations for mods or to even add the mods to portfolio

hard fern
#

I know nexus has a donation point system

velvet narwhal
#

here yeah, nexus, no SMCKekLmaoDog we're a weird ecosystem

hallow prism
#

what i know is :

  • you can have your name listed in commission wiki page
  • you can have mention of commission in your name
  • listing to a kofi/patreon page to showcase stuff is ok, but not to get donation
merry rampart
#

so im making an event and as a result of that event, i want there to be consequences. is it possible for me to have a debuff (custom or otherwise) applied after viewing the event? if so, can it be done without any c# coding?

i know it's possible to consume a food item during a cutscene and i could possibly apply the debuff that way. but i dont want the eating animation to play or anything...

idk. i'm just brainstorming ideas atm

uncut viper
#

nexus allows donations as long as there is no incentive to donate beyond just pure desire to support

lofty ruin
#

Okay, so I'm just going to list out my problems and hope they all get solved because this is too much for my puny brain.

Schedule Dialogue
I'm having a problem where I want my NPC to say something (randomized and once a day) when he reaches a certain place. It’s partially working, but his text gets cut off or the entire thing doesn’t work as intended. It's not randomized; instead, it’s all bunched up together. It’s just wrong.

Here's the link for it: https://smapi.io/json/content-patcher/eaee7afaf9a34251a6d46d7c8ac0e82e

Gift Tastes
I planned for the IDs to correspond with the text they're associated with, and most notably, the last one isn’t working. It automatically triggers another one rather than the one it’s bound to, 715. And before you ask, that’s the intended code (lobster), but if it’s no longer 715, then I'm not sure what the ID is now. Now I’m speculating that none of these are connected to the text they're under.

Here's the link for it: https://smapi.io/json/content-patcher/ea3ae9a40e8547a9bf6f406cd7be28a8

Dialogue
Just the dumpster diving comment isn’t working. I'm not sure if this is the right one, but it's all I could find: "Town_DumpsterDiveComment_Adult."

Here's the link for it: https://smapi.io/json/content-patcher/3a65b469a3ed4832abe19df2dec4776a

Content.json just in case: https://smapi.io/json/content-patcher/ebc09103f44b4675ad3157bd764fc752

hallow prism
agile kestrel
#

ill get more into it, imma get into the commission wiki page, tysm

hallow prism
#

(you may get better success by :

  • splitting stuff
  • spacing stuff
  • doing your share of this by learning and resting and learning)
velvet narwhal
#

oh y'know

#

don't events have an action command

#
AddBuff <buff ID> [milliseconds duration]
RemoveBuff <buff ID>```
uncut viper
merry rampart
#

im just learning how to make events so im not sure what exactly i can and cant do

uncut viper
#

actually i might be thinking of a different random thing

#

avi knows more about random than i do

lucid iron
#

i dont think there is anything stopping you from putting mod work in your portfolio right

velvet narwhal
lucid iron
#

as long as it is fit for the theme or whatever

velvet narwhal
#

h u h oh sure lemme look SMCKekLmaoDog

uncut viper
#

but atra gave me a point up so im gonna go back to thinking its the comma thing

calm nebula
#

When people do random with dialogue they usually switch the separator to something else for their sanity

velvet narwhal
#

i don't actually use input separator so if that's used uh, i'm gonna give you the content patcher link SMCKekLmaoDog

rancid temple
#

Ah, return to the ocean of orange...

uncut viper
#

(also i recommend if you are going to send jsons in this channel you should make sure the content of the json only has dialogue appropriate for the server, filler/placeholder or otherwise)

hard fern
blissful saddle
#

ok, I need help because it seems nonsense to me.

I am studying Spoilage code deeper, trying to understand how it gets the data to the items.

I have this definitions:

public static string dictPath = "aedenthorn.Spoilage/dictionary";
public static Dictionary<string, SpoilData> spoilageDict = new Dictionary<string, SpoilData>();

dictPath is just called twice:

        private void Content_AssetRequested(object sender, StardewModdingAPI.Events.AssetRequestedEventArgs e)
        {
            if (!Config.ModEnabled)
                return;
            if (e.NameWithoutLocale.IsEquivalentTo(dictPath))
            {
                e.LoadFrom(() => new Dictionary<string, SpoilData>(), StardewModdingAPI.Events.AssetLoadPriority.Exclusive);
            }
        }
        private void GameLoop_DayEnding(object? sender, StardewModdingAPI.Events.DayEndingEventArgs e)
        {
            if (!Config.ModEnabled)
                return;
            spoilageDict = Helper.GameContent.Load<Dictionary<string, SpoilData>>(dictPath);
        
        .
        .
        .

        }
#

basically what it does is, if called this path, creates a new dictionary? that's it?

lucid iron
#

yea it just get the asset at aedenthorn.Spoilage/dictionary

blissful saddle
#

but given the AssetRequest above, the asset at aedenthron.Spoilage/dictionary is a new dictionary

lucid iron
#

this one is a feature for other mods

#

Game1.content and Helper.GameContent are the same when you run game via smapi

blissful saddle
#

hmmmm

#

I think I get it now

quaint moss
#

Is there some way to reload internalassetkey'd assets? Creating a Spacecore guidebook and even with patch reloads it's refusing to refresh my stuff at random

final arch
#

maybe spacecore keeps a reference to the old textures

merry rampart
#

ok so I think I can make a debuff happen upon seeing a certain event. seems entirely possible

timid plover
#

Does CP natively support wallpapers wider than 16px now?

calm nebula
#

No

timid plover
#

sad

#

and with aedenthorn being retired I don't think anyone's going to fix up Custom Wallpaper Framework to 1.6

#

I certainly can't

rancid temple
timid plover
#

Maybe @ivory plume would be interested in adding that feature in a future update? Just a suggestion of course

uncut viper
#

i dont think somethin like that is generally in content patcher's wheelhouse. anyone is free to update aedenthorns mods though, someone might take it up eventually

rancid temple
#

Could always try commissioning someone for it too

lucid iron
#

wide wallpapers bolbthinking

#

but aside from this, i suppose you could make a giant "painting" furniture?

blissful saddle
#

I got this one but I don't find the 1.6 one

lucid iron
#

its not updated

uncut viper
#

thats the point, there isnt one

lucid iron
#

but u can since its aedenthorn

blissful saddle
#

oh ok... I thought the 1.6 one had broken

#

yeap, that's what I thought

#

I think I know how I will do my Spoilage Plus. I think I understand how the original one works

timid plover
#

The problem with a painting is that it goes over certain tiles that wallpapers go under

blissful saddle
#

while I let my ideas settle in my mind, I think I can take another update to take it easy

#

I will try to update this framework

timid plover
#

Though I could maybe make it work by having paintings for the open sections and a matching wallpaper for the rest

#

Oh neat, good luck!

ivory plume
brave fable
#

ahhh, i'm purple 😌

#

finally got my pants back on

tardy adder
#

I need a machine to extract my ideas of dialogue and write them out coherently for me

#

Also I need more screens for space o-o

brave fable
#

i was dreading dialogue for years but it gets fun if you spend a little valuable daydreaming time to try and characterise your npcs some

blissful saddle
#

ok, I am making a patching postfix to a method that receives a string var wallpaper_id. I have this entrance for my postfix method:

            public static void Postfix(DecoratableLocation __instance, string wallpaper_id)
            {
              \\bunch of code
            }

When I try to run, I get this exception:

System.Exception: 'Parameter "wallpaper_id" not found in method virtual System.Void StardewValley.Locations.DecoratableLocation::UpdateWallpaper(System.String wallpaperId)'

What is wrong?

brittle pasture
#

it's named wallpaperId, not wallpaper_id

#

harmony is pretty strict on that stuff

blissful saddle
#

well, this is the last decompiled I had:

public virtual void UpdateWallpaper(string wallpaper_id)

#

maybe it changed to now?

uncut viper
#

your decomp is likely out of date then, its wallpaperId for me as well

blissful saddle
#

ok, good to know

uncut viper
#

wallpapers did get some minor backend changes iirc in 1.6.9 so

blissful saddle
#

oh, ok. I missed that part so

#

I was checking the changes to 1.6 only

round thicket
#

Okay, so I got my Spirit's eve Costume mod working as intended, however when I tried to get my mod that changes the Happy face on Jas's sprite it's using the wrong smile asset on Spirit's Eve so it looks silly.

I'm trying to have it be so when it's the 27th it's changes the portrait using the second edit image, and on every other day it uses the first edit image, but I clearly did something wrong, and cant figure out what
Case in point

#

https://smapi.io/json/content-patcher/ebd76740ce3646729e815e8c76d03a42
I'm trying to have it be so when it's the 27th it's changes the portrait using the second edit image, and on every other day it uses the first edit image, but I clearly did something wrong, and cant figure out what
Okay, so I got my Spirit's eve Costume mod working as intended, however when I tried to get my mod that changes the Happy face on Jas's sprite it's using the wrong smile asset on Spirit's Eve so it looks silly

uncut viper
#

"Wallpaper and flooring can now be applied to custom map tiles if their tilesheet ID contains walls_and_floors."
i guess the parameter changed when this happened

#

/speculation

brittle pasture
#

you don't have to speculate if you become oragne

uncut viper
#

not all oranges have repo access!

brittle pasture
#

yes, but everyone who has repo access is oragne
well, unless they have like a cooler color or smth

uncut viper
#

the gist does say there can be exceptions for repo access for non mod authors

#

so that might not even be true either!

#

RE: Awsomebird27, by that i mean, just dont include it in your first patch up at the top, which you are still doing

#

actually, are you sure its even supposed to be Jas_Halloween?

#

(which has an extra comma at the end there too inside the quotes which is also probably breaking it)

blissful saddle
#

the game is starting now

blissful saddle
timid plover
blissful saddle
#

ok, so you can test the updated version in the morning

#

I am also proud of my skills to clean the harmony patch structure now

round thicket
#

What I'm trying to do is use an asset I made that's just the mouth of this version ↓

#

to replace the v shaped smile with mine

faint ingot
#

Made my first custom cooking recipe! Yum.

brittle pasture
#

the three new crops are surprisingly good soup ingredients

blissful saddle
#

one carrot gives +75 energy normally, don't?

uncut viper
blissful saddle
#

even with the big defense bonus, since energy is the most used resorce, it seems a downgrade

faint ingot
#

I guess I could increase it I was basing it roughly on pumpkin soup, didn't think about how these ingredients give a lot of energy. On the other hand, how much energy would eating a rock give? probably negative : )

blissful saddle
#

zero, but that's where comes the debuff in speed and attack, and increase in defense, don't?

faint ingot
#

I have two NPCs in my new mod, my intention is to pair this with another recipe from my other NPC for a drink which will give something like +2 speed, +5 attack, -10 defense

hallow prism
pine elbow
#

I'm working on a Seasonal Maru mod and I'm in the middle of testing.
SMAPI is no longer throwing any errors and I see her spring outfit works, but is there any way to test all of the other seasons without having to click my bed a thousand times to progress through time quickly😅

faint ingot
#

haven't decided on final numbers for anything but the idea is to make the drink risky without the soup, and make the soup cumbersome without the drink

blissful saddle
pine elbow
faint ingot
round thicket
hallow prism
#

Cooking food is trading money for buff. Trading energy for buff doesnt seem a big deal

faint ingot
#

or world setseason I mean

round thicket
#

I hope that makes sense, I'm not sure I'm quite explaining it correctly

blissful saddle
#

the point is if, as it is, it is a good trade

#

anyway, I am just interested in knowing that one can put modData in an item...

hallow prism
#

Defense is super string so yeah it is

lucid iron
#

i actually think this should have more energy not bc of the energy of raw materials, but because they are spread across 3 seasons

hallow prism
#

Speed debuff is more annoying than losing energy would ever be

lucid iron
#

so making it would take some planning

faint ingot
#

I'm kinda with Lumina I don't think the energy matters that much. But if it bothers people I will increase it, its not a big deal to me

uncut viper
fickle totem
round thicket
blissful saddle
brave fable
#

defence is useless if you're not getting hit, and energy prevents you from getting hit

blissful saddle
#

I just thrown it because maybe it was overlooked

uncut viper
faint ingot
rancid temple
hallow prism
brave fable
#

does swinging weapons not cost energy in this videogame

rancid temple
#

Nope

brave fable
#

wtf

fickle totem
rancid temple
#

Swinging tools yes, but weapons no

fickle totem
blissful saddle
#

that moment we all found out blueberry never got into combat

velvet narwhal
#

(speed is usually the agreed upon 'broken' stat isn't it?)

lucid iron
#

luck op

blissful saddle
#

longevity gives an option to make scythe and weapons to use energy to swing, but raw, nope

calm nebula
#

Someone doesn't play the game

hallow prism
#

I got a mod that gave me up to 8 bonus defense and combat was waaay more relaxing. Of course it depends of where and what you fight

fickle totem
faint ingot
rancid temple
#

I made a mod that gives you buffs for getting stardrops and I still haven't found a good balance for the defense buff because just adding a little per makes me nearly impossible to kill lol

velvet narwhal
#

bluebs only here for the farmerrenderer chaos

lucid iron
#

i think magnet is the most fun stat though

brave fable
#

pants of shame

calm nebula
rancid temple
#

Lmao, yeah, I thought about adding regen, seems like it would be broken though

uncut viper
blissful saddle
#

I already have regen eating food with LoC

calm nebula
#

Even made it a float and a per second thing and it's still broken

uncut viper
#

you're still just editing Portraits/Jas_SpiritsEve

lucid iron
#

some other games have like

#

buff when HP < some threshold

brave fable
#

ah but love of cooking outright blocks you from instant heal other than elixirs

#

if enabled

lucid iron
#

to incentive you to play good and not heal

hallow prism
#

Anyway balance is hard especially with buffs and speed stuff and other mods, but i appreciate a good reference to stone soup

blissful saddle
#

yeah, and I loved it

rancid temple
#

The only other thing I could think is to make it some kind of damage paused regen

calm nebula
#

(Primarily did it because atracore equips can also fire for "defeated monster" and "player hit")

#

And I was mimicking a vampire ring

lucid iron
#

i think the bat trinket from my halloween mod is prob a bit overspec blobcatgooglyblep

rancid temple
#

I do really like lifesteal in games lol

velvet narwhal
#

-5def 0.2hp/s

lucid iron
#

but at least u gotta do crit build for it

blissful saddle
#

LS is awesome

#

nothing like healing while punching

round thicket
uncut viper
#

regardless of what its replacing, if those are the only relevant jsons, then Portraits/Jas_Halloween is not a thing that exists. you're not replacing anything with your EditImage in the smile mod

round thicket
#

the smile is the one that's supposed to edit the costume one, only should it be installed

uncut viper
#

the only things your costume mod is affecting are Portraits/Jas, Portraits/Jas_SpiritsEve, and Portraits/Jas_Fall
it will replace all of those with your assets/Jas_Halloween.png but it doesnt change the name of what you're editing there

#

so in your smile mod json, when you do editimage on Portraits/Jas_Halloween, that doesnt do anything, bc nothing is there

round thicket
#

ooooooooooh, okay, I think I see what you mean

#

so I need to not EditImage but instead load Jas_Halloween instead of theirs?

uncut viper
#

no, i imagine you can just EditImage on Portraits/Jas_SpiritsEve like you were doing in your costume mod

#

loading a different target would involve changing Jas's Appearance entries to use your new target, which is more work

round thicket
uncut viper
#

and if Portraits/Jas_SpiritsEve is only ever used on spirits eve anyway, you dont need the When condition

agile terrace
#

Unless you want her to wear it all day. If you want her to wear it outside of the spirits eve map then you would want a when condition but if you don't, then just edit the spirits eve portrait and it'll load yours instead of the base one (given that you don't have anything else overwriting what you're trying to do like SCC)

uncut viper
#

that depends on what the original mod that they are overriding is doing

#

iirc they are replacing seasonal apppearances, uh, Appearances

#

it mightve been SCC they meant i dont remember now

agile terrace
#

Well and I'm kinda jello brained so I probably should keep my attempts at aid to myself... but from my Magnus mod I know you can use the when condition to make the character stay in costume all day.

uncut viper
#

the process is different when using When conditions vs the 1.6 Appearance system

#

1.6 Appearances have Conditions applied to them as well as season and indoor vs outdoor, and if the original mod uses an Appearance with a Condition that only applies it during a festival (such as only in town and on fall 27), then it wont matter whether you have a When condition or not on your EditImage patch

#

because the original mod is only going to apply it according to its Conditions anyway

agile terrace
#

Ok. Then I'm probably fully out of date. So, Awesome should probably ignore me fully :/

#

Aaaand I should probably check my stuff when I'm less jello brained to be sure it still works >.>

uncut viper
#

a When condition is when you do just want to edit their base sprites and portraits, which is what you used to need to do before 1.6, but even then that wont matter bc Appearances can tell the game to use a totally different asset for their sprites and portrait and ignore the base one completely

#

that wont always* matter

round thicket
brittle pasture
#

huh... I just tested this with SDV 1.6.12 and... my DayEnding "spoilage"-like code works fine with Automate? Coffee Maker, Crab Pots, Mushroom Logs, all output fresh, unspoiled produce into a chest next morning

agile terrace
#

Weeell frig. Yea that's something for me to check when my brain is less gooey.

round thicket
#

I feel like im having an aneurysm lol

#

I've been at this for like 4 hours

radiant snow
#

im trying to fix my smapi bc its jus not opening, like its not launching when i double click it. i had a thread on like the tech help chat but it closed so idk if i should open a new one or not

uncut viper
radiant snow
rancid temple
#

According to the bot in your post, if you still have issues you should create a new post

radiant snow
#

kk tyy,, i jus wanna play my game mann

rancid temple
#

.12? God I'm out of the loop

agile terrace
#

Is .12 the beta?

blissful saddle
#

anyway I will be working on my spoilage plus tomorrow

uncut viper
#

.12 is just the currently out version of stardew

round thicket
rancid temple
#

I'm still on .10 lmfao

agile terrace
#

I'm clearly not paying attention to anything... I thought we just got .9!

blissful saddle
#

I am also using the 1.6.12, but spoilage is yet spoiling my Automate crab pot fishes

brittle pasture
#

are you sure they're not being added into existing stacks?

rancid temple
#

.9 had issues, had to be locked away

blissful saddle
#

yeap, started with an empty chest

agile terrace
#

Oh... crazy I didn't even notice

blissful saddle
#

I will do more tests

velvet narwhal
#

who will win the bet, what final version will we land on...

uncut viper
# round thicket Tried that didn't work sadly same issue

unfortunately i do have to go for a bit but, if you can do a patch summary in your console and then upload the log to the smapi site and then post it here someone else with fresher eyes might be able to take a look, sorry i couldnt get you to the finish line SDVpufferchickcry

brittle pasture
#

anyway this is what I have, it is different than how Spoilage does it
I also have a check that ensures items of different 'freshness' don't stack

  static void OnDayEnding(object? sender, DayEndingEventArgs e) {
    ForEachItemDelegate Handle = (in ForEachItemContext context) => {
      Utils.SpoilItem(context.Item);
      return true;
    };
    Utility.ForEachLocation((GameLocation location) => {
            Chest? fridge = location.GetFridge(onlyUnlocked: false);
            fridge?.ForEachItem(Handle, null);
            foreach (SObject obj in location.objects.Values) {
                if (obj != fridge) {
                    if (obj is Chest chest && chest.specialChestType.Value != Chest.SpecialChestTypes.MiniShippingBin) {
                        obj.ForEachItem(Handle, null);
                    }
                    else if (obj.heldObject.Value is Chest chest2) {
                        chest2.ForEachItem(Handle, null);
                    }
                }
            }
            foreach (Furniture furniture in location.furniture) {
                furniture.ForEachItem(Handle, null);
            }
            foreach (Building building in location.buildings) {
                foreach (Chest buildingChest in building.buildingChests) {
                    buildingChest.ForEachItem(Handle, null);
                }
            }
            return true;
        });
        foreach (Item returnedDonation in Game1.player.team.returnedDonations) {
            if (returnedDonation != null) {
                Utils.SpoilItem(returnedDonation);
            }
        }
    foreach (var item in Game1.player.Items) {
      // Handle better chests? Idk
      if (item is Chest chest) {
        chest.ForEachItem(Handle, null);
      }
            Utils.SpoilItem(item);
    }
  }
#

wait did that show in the full Discord window? I thought it was supposed to collapse

#

should I reupload that

uncut viper
calm nebula
#

Mod that let's you put a stack of bait in a crab pot

#

And one gets consumed per day

#

(Don't expect me to do it.)

#

I have an entire fucking design I need to review this evening

brittle pasture
blissful saddle
brittle pasture
#

I patch Item.canStackWith

#

they're the same items, just different modData keys

blissful saddle
#

interesting

brittle pasture
#

huh, aedenthorn's spoilage doesn't patch canStackWith, nor does it change the spoiled item's internal name

blissful saddle
#

can't we get rid of checking each location to check each item location instead prior to 1.6.9? that's what I intend to change in my code

calm nebula
#

See, I would like the idea of spoilage more if it didn't mean I needed a pile of like

#

Chests everywhere

blissful saddle
#

nope. it just changes the description and stacks them to the least freshness one

brittle pasture
#

yeah... it might be the case that your crab pots are throwing the fresh items into the stale pile
try testing with an empty chest?

blissful saddle
#

I did, but I am preparing to make more intensive test

#

like backuping my save

agile terrace
#

Is spoilage added by a mod or by .12?

brittle pasture
#

mod

#

CA isn't that evil lol

agile terrace
#

oh thank god

brittle pasture
#

but I am

#

(jk, my idea isn't really evil either)

calm nebula
brittle pasture
#

got it, hoppers now work with crab pots

blissful saddle
round thicket
blissful saddle
calm nebula
#

(You don't have to give me tips and tricks lol)

rancid temple
#

Lmao

next plaza
#

I see everyone's colors have disappeared

#

Back to being able to recognize people based on their role

brittle pasture
#

I am Skeleton War general no more SDVpufferflat

calm nebula
#

My secret is I probably already have an implementation in mind

#

And I'm not going to do it lol

#

I have an entire design to review

rancid temple
#

I just peaked at crab pots code and ew

rain basalt
#

is there a line limit for jsons and CP lol im at 1119 lines and only have 1/10th of the mod done

brittle pasture
#

1119 lines are beginner's talk, look at RSV's i18n

next plaza
#

@light jasper Still getting the tabs on SpaceCore's equipment menu apparently, any chance you could look into it?

agile terrace
#

@woeful lintel Hey, just checking in, I know you had been doing a pretty serious rework, how's that going?

blissful saddle
sharp field
#

so I forgot there were going to be larger changes in the recent update...this will be fun.

blissful saddle
velvet narwhal
#

oh are you a part of the guinea pigs now

blissful saddle
#

now I can wait for the a-patch-alypse to pass to work on my Spoilage Plus

rain basalt
#

lol im doing my mod durring this mess ^..^ just getting the ocational patched map lines but find the issue and fix them

velvet narwhal
next plaza
velvet narwhal
#

was very happy casey's pr got approved SMCKekLmaoDog

rancid temple
#

Old mods adopting new techniques? Blasphemy

next plaza
#

I don't make PRs that I haven't at least gotten the idea itself approved by Pathos 😛

#

(Or whoever the corresponding author is)

#

(Unless it's like an obvious bug and a fix for it or something)

velvet narwhal
#

you will be missed for your vacation time after all of these hotfixes go out, but i'd say it's well deserved

calm nebula
#

Meanwhile I just send +1k/-1.4k

teal bridge
inner harbor
#

SO...with the new update was there a way to stop Trinkets being active in certain maps?

blissful saddle
#

nope. Atra wants to put the stack into the crab pots, not in a chest that feeds the crab pots

uncut viper
#

with just CP? probably not

teal bridge
#

Obviously I know what he said; Automate accomplishes exactly the same goal with 2 extra seconds of in game time.

blissful saddle
#

I just love how Automate lets me make big machines with modular operations

teal bridge
#

And it is way more efficient to manage 10-20 crab pots that way, than to fill each of them up with bait.

uncut viper
#

i guess you could patch the C# class the trinket refers to based on location, actually

rancid temple
#

If people try to enter your location with a certain trinket in their inventory, patch a warp right next to the entrance to make them leave

inner harbor
#

I have added dialogue to make you feel guilty.

blissful saddle
rancid temple
#

If we're already going to C#, then there's no limits, just nuke the hell out of the trinket

inner harbor
#

No murdering of slimes on map: EastScarp_ToriSlimeBasement

blissful saddle
#

I thought Buttom had suggested to make a C# patch and we were going with this

inner harbor
#

(possibly set via the "data" in the C# component so I can add other maps to the list)

rancid temple
lucid iron
#

can u make the slimes invincible instead

uncut viper
#

TrinketEffectClass is a field you can touch with Content Patcher. though it probably doesnt change existing trinkets

rancid temple
#

Well I think the frog just eats them right

inner harbor
#

I Think I may have made them invicincible already, but yeh, frog eats em

lucid iron
#

oh froge specifically

uncut viper
#

you could forcibly remove a trinket if they have it and then give it back again (either with the new, useless trinketeffectclass or after they leave) but i dont know if you could account for modded ones

rancid temple
#

Frog don't care about simple things like being unkillable

lucid iron
#

hm voiding out the effect class wouldnt do anything

#

because trinket's equipped

uncut viper
#

thats why you'd need to remove it and re-add it right

blissful saddle
#

unkillable doesn't mean unedible

royal stump
#

SDVpufferlurk if the slime is spawned by FTM, there's specifically an anti-frog setting

#

nothing specific for other trinkets, though, if those are an issue (though I imagine giving them 999 dodge works)

lucid iron
#

this is good point though i should probably include a way to disable trinkets

#

besides the abilities own conditions

inner harbor
#

I did see that in the FTM notes, but my mind had shuffled it into "didn't know where I'd seen it" mode.

inner harbor
#

its okay though atra, as Esca already put the preventions in place.

woeful lintel
blissful saddle
#

well, I am proud of being of no help at all

inner harbor
#

I'll try and set if for when I do the slime show too, cos it would really suck to attend a slime fanciers convention and murder all their slimes

blissful saddle
#

time to ready for bed

inner harbor
#

Although.... would trinkets work in cut scenes?

lucid iron
#

vanilla ones do

inner harbor
#

well, I shall see what happens

lucid iron
#

base.Owner?.currentLocation == null || (base.Owner.currentLocation.DisplayName == "Temp" && !Game1.isFestival())

inner harbor
#

I'm thinking of making it a festival you can attend annually and trade petrified slimes for slime related memorabilia

lucid iron
#

so it is not drawn if player is in temp location thats not a festival

inner harbor
#

so temp maps are safe, that's good

#

would FTM work to spawn slimes on a festival map?

lucid iron
#

but that is just the visuals though, i dont think vanilla bans abilities think

#

unclear what exactly happens if frog not drawn

inner harbor
#

DH has added code to spawn slimes in events but he didn't put a "no kill" on them so it might. I guess we shall find out.

royal stump
#

I'm not sure how passive festivals are handled exactly; FTM has trouble with maps that don't exist at the start of the day

brittle pasture
#

passive festivals are just fancy map patches I think (actually don't quote me on this)

inner harbor
#

I think it would be a general festival map rather than a passive one. It'll be a separate map

calm nebula
inner harbor
#

actually passive festival would be best. It'll be a new map accessible for only one day of the year via the Scarp Bus

#

I"d probably use the Park where the Dog Adoption event was as I"m too lazy to make a whole new outdoors map.

#

anyhow i'm jumping the gun

agile terrace
royal stump
# lucid iron unclear what exactly happens if frog not drawn

SDVpufferthinkblob looking at it again, I think the frog doesn't update its eating timers at active festivals either

if (!Game1.shouldTimePass())
  return;
/*...*/
public static bool shouldTimePass(bool ignore_multiplayer = false)
{
  if (Game1.isFestival())
  return false;```
lucid iron
#

shouldTimePass op

calm nebula
#

The bow

inner harbor
#

so to stop something being murdered, Esca, should I set the HP high (like 10000) to avoid it being murdered?

royal stump
#

"magic quiver trinket effect" does the same thing in its update

calm nebula
#

Can you give it 100% evasion?

inner harbor
#

so an active festival they'd be okay cos Time doesn't change, but for a passive they would be runnig?

#

would evasion work against the quiver?

royal stump
calm nebula
#

Because we can kill a 10000hp mob eventually

royal stump
#

iirc it's what SVE does for a couple things

inner harbor
#

yeh I wasn't sure if the quiver eliminated dodgechance

#

I thought I"d done it too, but I guess not on the FTM side of things

#

(I think I did it by locational edits in the code)

#

So evasion is DodgeChance?

royal stump
#

yep

#

and I don't see anything obvious in the quiver code about negating that, it just spawns a basic projectile

#

it ignores collision, but doesn't have any parameters that mention evasion, at least

inner harbor
#

okay cool, I can set it to 100

#

its percent, right?

royal stump
#

it is, though I'm not sure if any weapons reduce it, so setting to to 9999 or something could possibly help SDVkrobusgiggle

lucid iron
#

extremely evasive slime

inner harbor
#
            "MonsterName": "Green Slime",
            "Settings": {
              "InstantKillImmunity": true,
              "HP":"10000",
              "DodgeChance":100
            }
          }```
#

I don't mind if you freeze them as that doesn't hurt them

royal stump
#

yeah, the immunity settings were requested by Flash for bosses, since the frog would insta-kill them (possibly affecting loot?) and multiple players with stuns would just win easily

#

but for passive monsters, the latter won't affect much

#

oh right, some weapons have "added precision", which is a multiplier on "miss chance" (evasion) when attacking monsters

#

so in some cases, 100 won't actually be perfect

brittle pasture
#

I recall someone posting about the frog 𝒄𝒐𝒏𝒔𝒖𝒎ing the peaceful shadow people in SVE

royal stump
#

yeah, that'd be an issue SDVpufferdizzy they'll target pretty much anything without patching

calm nebula
#

They made their peace with you

#

But.....

inner harbor
#

okay its set high, hopefully that will prevent murdering of domestic slimes

calm nebula
#

Not the frog

#

You will never make peace with the frog

#

The frog eats allllll

inner harbor
#

The frog will devour everything!

calm nebula
#

One day the frog eats youuuuuuy

inner harbor
#

haha, imagine that

woeful lintel
inner harbor
#

if you hit all the monster goals, the frog realizes that YOU, the farmer, are the ultimate monster... and thus you are its next prey.

lucid iron
#

when u get eaten you have to fight your way out of the frog

agile terrace
inner harbor
#

Okay so frog cannot eat them but keeps trying, he's so stupidly cute.

sharp field
#

I've decompiled the source code in ilspy, but I keep getting a "System.NullReferenceException: Object reference not set to an instance of an object." error when I try to save the code. Any idea what dumb thing I'm doing?

#

The source of the error is inconsistent as well. I've had it hit for two different files.

lucid iron
#

what do you mean save code?

tender bloom
#

Decompiling often doesn’t make code that recompiles, as Khloe’s been experiencing recently

#

If that’s what you’re trying?

#

NREs in general are a little bit hard to track down unless you go full on nullability stuff everywhere

#

And sometimes the game just hands you nulls for fun

tardy adder
#

wooo finished adding stuff to the weather, gotta check it tomorrow though my pc is on fire right now

sharp field
#

From the wiki: Right-click on Stardew Valley and choose Save Code to create a decompiled project you can open in Visual Studio.

tardy adder
#

I returned to ignoring the dialogue hellscape, its just hanging out there

lucid iron
#

what version of ilspy do you have

tender bloom
#

Interesting—that never worked for me but ILSpy liked to crash on me

sharp field
#

I'm not trying to get it to be recompilable. I'm just trying to get it in a format so I can view in VSCode and do a diff with an earlier version. I have gotten this to work in the past (I have folders for 1.5 and 1.6).

#

ILSpy version 8.1.0.7455

lucid iron
#

mystery PecoWant

tardy adder
#

remind me in 22 hours to check if I broke something with pdw

patent lanceBOT
#

😏 (#6349658) (22h | <t:1731111420>)

lucid iron
#

i can confirm that ilspycmd works at least

sharp field
#

ilspycmd?

lucid iron
#
ilspycmd -p --nested-directories -r "$GAMEPATH" -o SDV-CSharp "${GAMEPATH}/Stardew Valley.dll" "${GAMEPATH}/StardewValley.GameData.dll" -lv CSharp10_0
#

its cli version of ilspy

light jasper
sharp field
#

I can see the decompiled code in ilspy. It just won't save sigh

lucid iron
#

abs0rbed i hope u r survive the waves of "uiis2 doesnt work"

light jasper
#

thankfully it wasn't too bad, mostly just a field I was reflecting that isn't private anymore

sharp field
#

Oh. checked again and the file the null ref error is thrown for isn't even showing up in the ilspy navigation bar

lucid iron
#

did you have something unrelated loaded maybe?

sharp field
#

...I updated to the most reason version of ilspy and it worked. Classic.

#

Thanks for bearing with my silliness

lost brook
#

Mannn i want to make a merman npc mod but I have literally no knowledge of coding

#

So down the drain it goes

brittle pasture
#

you don't need to know how to code! it's mostly dialogue/art/schedule/etc.

#

!npc

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:

tiny zealot
#

!anyonecancook

ocean sailBOT
#
lost brook
#

O

#

Thanku

#

IM GOING TO COOK

mystic birch
#

Create that oc

#

Er

#

Npc. Same thing

#

But modding stardew is actually surprisingly simple once u get the hang of it

teal bridge
rain basalt
#

This may sound like a silly question but can I use separate json files to store options and call them in my main file with content patcher

rain basalt
#

Thank god I didn’t want to have to store a lot of location data variations in the main code

rain basalt
#

@lucid iron from what I’m reading on include the only rules I need to follow is make sure I follow change structure and I can name the new json files anything I want within reason and place them in other folders to sort them out is my assumptions correct

lucid iron
#

im unsure why u pong me in particular but yea sure

rain basalt
#

Lo you said to ask you anything

lucid iron
#

but is it about trinkets AnnelieStare

tiny zealot
#

(chu meant about the trinket framework)

rain basalt
lucid iron
#

here's a quick example of using includes with config

#

includes r nice for not repeating "Config": true 10000 times

rain basalt
#

Or having to sort though 10000000 lines of code not used until special situations

tiny zealot
#

love to gate an include with the config/hasmod/whatever token check. then all of the patches inside the include can just... not specify conditions

rain basalt
#

Well off to sleep I’ll start breaking my code out later

fast urchin
#

How to get the total number of fish caught by the player

faint ingot
ocean sailBOT
#

Log Info: SMAPI 4.1.5 with SDV 1.6.12 build 24312 on Microsoft Windows 11 Home, with 4 C# mods and 3 content packs.

faint ingot
#

[X] | [X] | [ ] | Default | Fixup Condition Check > fixup.json > Special Orders > assets/Data/SpecialOrders.json > EditData Data/SpecialOrders #2 not sure why that line is matching conditions but not being applied

fast urchin
velvet narwhal
#

are your internal npcs names just 'Shannon' and 'Russell' ?

faint ingot
#

Yes, but the Shannon check is for a different special order

#

the Russell check is fulfilled but not applied

calm nebula
#

I feel like smapi was just 4.1.4?

vernal crest
#

Okay I tried to see if anyone else replied to this but it's been too many hours and too many messages lol. Range doesn't check between the values listed, it just gets converted into a list of the numbers within the range. So this {{Random: {{Range: 1, 7}}, {{Range: 20, 30}} }} will be converted into this {{Random: 1, 2, 3, 4, 5, 6, 7, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30}}, saving you from having to write the entire list of numbers out yourself. (This may have been what you meant anyway when you said check but I wanted to be sure in case you thought the range token was just going to pick one number out of the range.)

And then Random will check that list to pick one of those numbers at random, yes.

velvet narwhal
#

*we're already on 4.1.6 SDVpufferpain *

vernal crest
#

4.1.5 hit sometime yesterday aaand I guess 4.1.6 arrived when I was gone lol

velvet narwhal
#

i think it just updated

calm nebula
#

I'm just adding the ||LostItemShop|| to EventTester

velvet narwhal
#

not sure why they're not applying, if you have the specified hearts, i assume it goes daystarted for special orders

calm nebula
#

And in three launches of the game I see

uncut viper
velvet narwhal
#

4.1.4->4.1.5->4.1.6 ? SMCKekLmaoDog

faint ingot
calm nebula
#

"You can update to 4.1.4"
"You can update to 4.1.5"
"You can update to 4.1.6"

faint ingot
#

yeah i've updated smapi like 6 times the last few days

velvet narwhal
#

poor pathos

faint ingot
#

which I appreciate! happy to have the fixes going in

calm nebula
#

Next up I suspect is checking all localized data files for "(no translation)"

#

Or at least dialogue and events

tiny zealot
#

i am currently laser focused on the fix for gender blocks in i18n files

velvet narwhal
#

wasn't sheku asking for that, just a runthrough of all loaded npcs to see if any keys have the no translation

calm nebula
#

Yup!

velvet narwhal
#

would definitely save me the trouble too considering my i18n let alone an expansion

calm nebula
#

That asset is only requested on Sundays and if a player checks the board

velvet narwhal
#

TIL

faint ingot
tiny zealot
long jungle
#

I need help checking my code. I'm trying to put the Cowboy Boots in Sandy's Shop at the Desert.

I cannot see what I'm doing wrong...

{
   "Format": "2.4.2",

    "Changes": [
        {
            "Action": "EditData",
            "Target": "Data/Shops",
            "TargetField": [
                "Sandy","Items" ],
                    
            "Entries": {
                "CowboyBoots": {
                    "Id": "CowboyBoots",
                    "ItemId": "(B)515",
                    "Price": "25000"
                            },
            },
        },
            ]
}
#

I'm new to this and I am just experimenting so please kindly tell me what's wrong here if you know

velvet narwhal
#

try changing id to also be (B)515

brave fable
#

(i thought Id was just an arbitrary id for the entry rather than an actual item value)

velvet narwhal
uncut viper
#

is Sandy's shop entry actually called Sandy? I thought it was "DesertShop" but that might be a false memory and I can't check rn

long jungle
velvet narwhal
#

my internet is acting up so i can't check the wiki, i'm on mobile casting

uncut viper
#

also yeah id doesn't matter besides being unique

velvet narwhal
#

my trusty ol' unpack s'all i got SMCKekLmaoDog

uncut viper
#

is the problem that the boots don't show up in the shop at all?

long jungle
#

It doesn't appear at all, not a trace.

faint ingot
#

So I was able to test my special order, and it sent mail as expected, which is supposed to have my custom recipe attached: "LawAndOrderSV_SpecialOrders_WinterProvisions_Mail": "@,^^Your donation of coal and cloth is greatly appreciated by us, and by the community. This should be plenty to get by this winter. I wanted to share my own special recipe as a thank you.%cookingRecipe LawAndOrderSV_StoneSoup %%[#]Winter Provisions" but the letter doesn't have the attachment and looks like this:

#

am I formatting the attachment wrong?

velvet narwhal
#

%item id cookingRecipe <key> %%[#] i think

faint ingot
#

ah thank you I see that now

#

id after cookingRecipe though I think... testing...

long jungle
#

Thanks though

faint ingot
#

huzzah

velvet narwhal
#

i don't know what the other fields default to

long jungle
ivory plume
#

Can you...

  1. open Sandy's shop in-game again;
  2. enter patch summary in the SMAPI console window;
  3. upload your SMAPI log (see instructions on that page);
  4. and post the link to the log here?
ocean sailBOT
#

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

long jungle
#

There. SMAPI also just updated so I will do that first.

ivory plume
#

Which content pack is yours in the list at the top?

faint ingot
#

interesting, qi seasoning decreases my food's -2 attack debuff to -1, but a -2 speed debuff is not changed to -1

long jungle
brave fable
#

buongiorno SDVdemetriums

#

spritefont italics is a new level of kerning nuisance

uncut viper
#

Scarabaeidae...

brave fable
#

daba dee daba di

ivory plume
# long jungle SVE RSV Modified Weapon & Boot Stats 1.2.0 by FjorlagRond

I don't see any patches which target Data/Shops:

   Patches:
      loaded  | conditions | applied | priority | name + details
      ------- | ---------- | ------- | -------- | --------------
      [X]     | [X]        | [X]     | Default  | EditData Data/Boots
      [X]     | [X]        | [X]     | Default  | EditData Data/Monsters #1
      [X]     | [X]        | [X]     | Default  | EditData Data/Monsters #2
      [X]     | [X]        | [X]     | Default  | EditData Data/Monsters #3
      [X]     | [X]        | [X]     | Default  | EditData Data/Weapons

Are you sure you're editing the right file (i.e. C:\Program Files (x86)\Steam\steamapps\common\Stardew Valley\[CP] SVE RSV Modified Weapon Stats\content.json)?

velvet narwhal
#

(is it not included?)

uncut viper
brave fable
#

^ pathos delete this one thanks

ivory plume
#

(I don't see any Include patches in that summary.)

uncut viper
#

😰

velvet narwhal
#

i've had the uncontrollable urge to make a cursive font just for my own hell

faint ingot
#

The uppercase ones seem to have less slant than lowercase which kinda gives it a weird look IMO. otherwise SDVemoteowo

brave fable
#

i'm pretty sure you can just import whatever fonts if you have them, but this one's a little particular to match the usual sdv font

#

they're not awful when you've got a workflow setup, and probably the only valid reason to be using xnbcli for anything

shut grove
#

does anyone know how the museum spaces work? and would expanding the artifact area need to entirely be to the right of the library?

uncut viper
#

valid museum spaces are determined by the tile you use from the tilesheet

long jungle
#

It's working now, Thank you so much!

#

I feel so dumdum that I forgot that about moving it to another folder T_T

shut grove
uncut viper
#

should be fine

shut grove
#

kk

uncut viper
#

i believe there are mods that already expand the museum area too, if you just need that and dont want to have to do it yourself

ivory plume
#

Welcome!

Just one little suggestion: the ID for custom entries should ideally be prefixed like this (see unique string ID).

"Id": "{{ModId}}_CowboyBoots",
velvet narwhal
#

ah yes the real correct way SMCKekLmaoDog

long jungle
ivory plume
#

Yep.

long jungle
#

Okay, copy.

uncut viper
#

the "Id" field for stuff like that just identifies the shop entry, not the item

#

so you need to make sure it doesnt clash with any other possible shop entries

ivory plume
#

(You can use {{ModId}} exactly as-is; Content Patcher will replace it with your actual mod ID automatically.)

uncut viper
#

someone else, for instance, could also add one with an id of "CowboyBoots" and break things

#

well not break, but overwrite, potentially just breaking yours

shut grove
uncut viper
#

fair enough! just wanted to mention em in case you were just wanting to make it bc you couldnt find one SDVpufferthumbsup

shut grove
#

yea

#

I could find them, just didn't quite satisfy what I wanted

velvet narwhal
#

(is this when i ask how far along you are in the museum framework? SDVpuffercoolest )

shut grove
#

framework?

uncut viper
#

sure! the same amount i was the day the halloween event started

#

i was working on a framework to allow easier creation and customization of custom museums, separate from the gunther museum

shut grove
#

ah

uncut viper
#

it got sidetracked by the mod jam

shut grove
#

kewl

uncut viper
#

and then 1.6.9

velvet narwhal
#

afaik no one's crashed and burned in the updates but i can check my modlist again

uncut viper
#

my motivation is what crashed and burned

long jungle
velvet narwhal
#

need new hyperfixation, chu stole the demonopolize-marnie

uncut viper
#

you can edit vanilla items through Data/Objects

#

you only want to change the DisplayName, though

long jungle
uncut viper
#

if you do you'll also likely want to use Fields instead of Entries to affect only the DisplayName field

#

if you use Entries and edit an existing item then it will replace every field you dont specify with default values

long jungle
#

Thanks again.

brave fable
rancid musk
#

Oh no italics

#

... I should get an italics font for Almanac. 🤔

brave fable
#

another victim 😌

rancid musk
brave fable
#

i'd offer you this one but it's only a-zA-Z and space

#

fine for binomials, otherwise mostly useless

rancid musk
#

Yeah, if I do pick up an italics font it should ideally cover an extended range to be usable for more than just English players.

#

That is definitely a Future Khloe problem.

brave fable
#

i was happy to do a full character set for a monospaced font since i didn't have to worry about kerning at all, but for a natural font i'm never going that far hahah

rancid musk
#

Once upon a time I was making a tool for converting fonts to sprite fonts. I should resurrect that project and also work on the auto-kerning tool for it.

brave fable
#

that definitely sounds like the kind of project you start and never finish SDVdemetriums

rancid musk
#

I can confirm I started it and it's not finished 😄

#

Though I did get far enough for it to download fonts from Google Fonts and bake them into SpriteFonts

#

That part was working fine.

#

It also has a font analysis command that measures every glyph in a font for their exact dimensions.

#

So in theory... I'm close to the point that I could work on auto-kerning?

faint ingot
#

is it possible to specify a specific type of roe as a cooking ingredient?

dusty scarab
rancid temple
#

Oh, my roe ID is wrong there, I was looking at Aged Roe

#

Would be id_(o)812, id_o_812, or even item_roe

lofty ruin
#

I planned for the IDs to correspond with the text they're associated with, and the last one isn’t working. It automatically triggers another one rather than the one it’s bound to, but if it’s no longer 715, then I'm not sure what the ID is now. Now I’m speculating that none of these are connected to the text they're under.

Giftastes.json https://smapi.io/json/content-patcher/501291ee097e4ac89eaaa8ee63e92781

woeful lintel
#

hell yeah, another "doesn't work in new update" post, I left a "comment doesn't help" answer for artistic symmetry

#

I would love reactions on Nexus, so I could answer SDVpufferpain to every useless comment.

worn coral
#

Make yourself a 5000% version of that, drop on Imgur and just link back - loads up as inline image in the comment (might convey the message.. or not VMVLmaoDog )

cerulean loom
#

Im working on my mod with custom NPCS and i just updated SMAPI and they all disappeared haha, does anyone know why? I dont get an errors when loading the game, theyre just all gone

hard fern
#

😔 "doesn't work" that gives me so much information on what the problem is .. totally

vernal crest
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.

cerulean loom
#

yes, all my maps and items are still in game but the npcs are gone 0-0

frigid hollow
#

are they gone gone? or are they just stuck in bed

cerulean loom
#

completely gone, not in the social tab in game. shops still work but the vendor pngs are missing

vernal crest
#

Do a patch export of data/characters

rancid temple
#

Did you update CP as well?

cerulean loom
#

Yes i did

rancid temple
#

Hm, I'm on latest and Lacey is still in my social tab

rancid temple
#

Also of note, if you're selling the recipes they'll show the original ingredients in the shop menu

#

1.6.13 SDVpufferwoke

#

(I literally just re-did my decompile and unpack lmao)

uncut viper
#

i did my decomp for 1.6.11 and im not doing it again til christmas

rancid temple
#

A relatively short break

uncut viper
#

i would admittedly be surprised if there were still rapid patches going on around then

rancid temple
#

Oof, yeah hopefully not lmao

woeful lintel
#

so y'all do a full decompilation of SV? I just ctrl+click the class I want to see and VSCode opens a decompiled C# class of it.

#

Am I missing something

#

oh and I have ILSpy to check the IL version when I need to do transpilers

uncut viper
#

i use ilspy if im searching for classes and such but i have a decomp saved in case i need to ctrl shift f for strings or other things that ilspy wont catch and i wont know where to find manually

rancid temple
#

I don't really like the way ILSpy looks/feels to use, so I decompile most of the time. I'll still use ILSpy for working with transpilers though

unique sigil
#

getting a weird issue with additional farm maps - for some reason an extra fireplace spawns whenever i make a save and reload it.

i've double checked my map properties and there are no duplicates in FarmHouseFurniture (and the furnitures spawn correctly on save creation). anyone ever got this issue since 1.6.10? this happens in all my additional farm maps, including the ones i've released before this update SDVpufferthinkblob

#

fyi: i used to have build and place anything anywhere, but it's yet to be updated so i deactivated it. i don't have mods that alter item placement other than that

rain basalt
#

For April fools they need to add a changelog that says “modded farmers : added dates to folders names to show when it’s been last updated “ just imagine the chaos that would cause

unique sigil
#

huh so it's a game issue then?

#

good to know

#

for a sec i thought i messed up mod updates

proud wyvern
woeful lintel
#

it already does this pretty well when VSC decompiles it on the fly, but oh well

#

the only thing I see the use of decomp for is indeed references in other files

vernal crest
#

Had you already written anything for editing the events page on the wiki? If you have already got something to replace/edit the ID stuff then I will use what you have otherwise I will rewrite it.

rancid temple
#

Except when it's broken and someone forces them to update

woeful lintel
#

the type of person who never updates anything ever
Every company I've worked at so far

calm nebula
#

Trust me no one wants to suddenly have to debug the CAD software they use at 4pm on a Thursday

tiny zealot
calm nebula
#

Because like a fool they allowed an automatic update

rancid temple
#

Yeah, that tracks lmao

tiny zealot
#

i never, never, never allow automatic updates. i turned a long time ago

#

i have been known to schedule unattended updates, but it is critical that i am in charge and can change the schedule. i have a thing about computers

calm nebula
#

then again, after arguing with python 3.5 for like twenty minutes on Wednesday....

fast urchin
#

How to let players get buffs made by C# after eating items made by CP

woeful lintel
tiny zealot
round thicket
#

Hey all, I finally got my mod somewhat working, but am still running into what I hope is one final issue, I got my smile mod to finally display properly on top of my Costume mod, however it seems to be using the wrong asset it should be using assets/Jas_BJS_SpiritsEve.png every fall 27th on spirits eve but instead it's still using assets/Jas_BJS.png anyone go any ideas, been stuck here since yesterday lol

Smile replacing mod ↓
https://smapi.io/json/content-patcher/1660e01b066e4040a00e301bded664cf
Costume mod content.json ↓
https://smapi.io/json/content-patcher/2987215124b642978b0792b7325060da

#

The way I've tried setting it up is, I would like both mods to work with vanilla and be compatible with one another, and seasonal outfits without having to mod multiple versions, so if someone downloads they can pick and choose to use whatever mods they want and it'll work out of the box.

fast urchin
#

sorry it's Game1.player.buffs.Apply(buff)

rancid temple
#

Are you doing something special with the buff that you can't just make it in CP?

fast urchin
#

nothing special, but my friend who make CP mod said that this buff can’t be made with CP.

#

maybe

rancid temple
#

What does it do?

fast urchin
#

just add a few attribute values ​​such as speed, defense, etc.

rancid temple
tiny zealot
#

if you only want stat boosts like that you don't even need to make an entry in Data/Buffs

rancid temple
#

Items themselves have the uh, CustomAttributes under Buffs

tiny zealot
#

check out how e.g. Coffee does the speed boost. that's all you need to do

rancid temple
fast urchin
#

sorry

#

Can CP do all these attribute improvements?

#

I see that the wiki only lists a few of them

mighty ginkgo
rancid temple
#

Not all of them, not sure what the effect of some of those are either

#

As per the buff page I linked earlier, buffs made in C# should have a string ID associated with them

fast urchin
tiny zealot
fast urchin
rancid temple
#

!json share what you did for the CP items

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.

tiny zealot
#

(if you didn't add the buff to Data/Buffs, the Object entry won't find it by its BuffId, i'm pretty sure)

rancid temple
#

Hm, actually, seems like Buffs might have more fields than the wiki shows now

fast urchin
rancid temple
#

Okay actually, Data/Buffs does have all those fields now

fast urchin
rancid temple
#

May have had them before, not sure when the last time the buffs were updated

round thicket
# mighty ginkgo i guess the Target in the patch is wrong `"Target": "assets/Jas_Halloween"`

I don't think so, cuz my costume mod loads my asset assets/Jas_Halloween.png to replace Portraits/Jas and should seasonal outfits be installed Portraits/Jas_SpiritsEve what im trying to achieve is only to have it be so that should my costume mod and my smile mod be installed which is assets/Jas_Halloween.png and assets/Jas_BJS_SpiritsEve.png respecitvely then assets/Jas_BJS_SpiritsEve.png should overlay to assets/Jas_Halloween.png

rancid temple
round thicket
#

I hope that makes sense

fast urchin
#

oh no

tiny zealot
# fast urchin Let me show you what I wrote in C# and CP

you've made the buff in-place in C# but you haven't given the rest of the game a way to access it. to be able to apply it to an object, you need to "register" it by adding its information to Data/Buffs (see previous link about content API)

#

or i guess you could finagle it from the same C# component but i would use data instead of code to the extent possible

fast urchin
rancid temple
#

Yeah, I would just do it all in CP for this lol, unless there's some other reason to have a C# element

fast urchin
#

My friend and I are new to modding and our technology is not very mature. Thank you for your help!

#

love you guys

rancid temple
#
"Buffs": [
  {
    "Id": "RedPandaBazaar_ExquisitelyStuffed",
    "Duration": 1600,
    "BuffId": "RedPandaBazaar_ExquisitelyStuffed"
  }
]```
#

For the CP portion, once you get the buff properly registered in Data/Buffs

tiny zealot
rancid temple
#

Those are all available in Data/Buffs though

mighty ginkgo
rancid temple
#

Wiki needs update

tiny zealot
#

oh, cool. my files are out of date i guess oops

rancid temple
#

I haven't checked the migration pages to see if this is already logged somewhere else either

fast urchin
tiny zealot
#

anyway, if it's all stuff available to the CustomAttributes model then you don't even need to add the buff to Data/Buffs. you can do it inline like Coffee and Trout Soup do

rancid temple
#

Yeah, I would choose depending on what level of control you want over the buff time

rancid temple
#

Data/Buffs duration is in milliseconds and in game minutes for CustomAttributes

round thicket
#

would I have to use actual programming to make that happen?

rancid temple
#

Are your dependencies set up correctly?

round thicket
#

I think so?

tiny zealot
mighty ginkgo
#

the Target is simply wrong is my view

#

and that's causing the problem

rancid temple
#

CP is good enough, just have to work out the correct internal names, proper order, and conditions for the whole task

#

What is assets/Jas_Halloween?

#

Did you Load an asset to assets/Jas_Halloween somewhere?

round thicket
#

that's what loaded to replace Portraits /Jas and Jas_SpiritsEve is seasonal outfits is installed

#

should my costume mod be installed

rancid temple
#

So you're trying to overlay the source image and not the end Target? Because CP can't do that

#

You would do your EditImage to Portraits/Jas_SpiritsEve or Portraits/Jas, whatever end target you're trying to edit

round thicket
#

I guess? I'm trying to have it be so if someone were to download my smile overlaying mod it would work both with and without my costume mod being installed

#

without needing seperate versions

rancid temple
#

You would need separate EditImages with different When conditions then

#

One for when your costume mod isn't installed and one for when it is

#

Regardless, your Target has to be the correct asset (Portraits/Jas ✅ or Jas_SpiritsEve), not the source image (assets/Jas_Halloween ❌)

round thicket
#

that's basically what I've been trying to figure out

#

is there a way to set up a when statement to be an exception? so that it'd edit the image with that first action everyday except Fall 27th?

rancid temple
#

I guess with a Query

#
"When": {
  "Query: {{Season}} <> 'fall'": true,
  "Query: {{Day}} <> 27": true
}```
Maybe, untested

```json
"When": {
  "Query: {{Season}} = 'fall'": false,
  "Query: {{Day}} = 27": false
}```
woeful lintel
rancid temple
#

Or I guess you could flip that

#

Well now that you ask, I'm not sure lmfao

round thicket
#

yeah im prob not explaining myself correctly lol

rancid temple
#

So you're trying to change her smile all the time?

round thicket
#

if the smile mod is installed yes, it should change her smile all the time

woeful lintel
#

I get triggered by the "Query: {{Season}} = 'fall'": false,, "{{Season}}" = "spring, summer, winter" is much more clear in my opinion

round thicket
#

the issue is, my costume mod makes her face like bone white, so I need two asset, one her regualar skin tone, and one white to match the costume

rancid temple
#

Oh lol, they both seem fine to me

woeful lintel
rancid temple
#

You could just do a late priority patch for the smile mod then?

woeful lintel
#

if you make sure the smile mod is applied after the costume mod (with the link rokugin provided), the smile will be put over the assets at these target positions, whatever what put here (either vanilla or costumed)

#

hope that clears it out

round thicket
#

I do target Portrait/Jas with the first action, but if I were to do it with the second if someone didn't have my costume mod installed wouldn't that have it use my costume smile asset which is inside my smile mod?

#

which would be off color?

rancid temple
#

Based on your When condition, it should only change that during Fall 27

#

Right now you're targeting nothing with your second EditImage

woeful lintel
#

the idea is that the costume mod changes what is in the asset Portrait/Jas, and you can just put the smile over it. I don't really know what your sprites look like so I'm not sure what you mean when you mention that it would be off-color

rancid temple
#

If your smile mod has false dependencies on your costume mod, you shouldn't need to mess with priority, though priority is considered before load order for some reason

round thicket
#

I can show you screenshots

fast urchin
#

sorry

round thicket
#

so this is what it looks like as is

#

it has a few pixels of off color because it's using the wrong mouth asset

#

should it use the correct one it'd be this

tiny zealot
round thicket
#

so I need it to only use that second mouth when my costume mod is installed, otherwise it can literally just be ignored and the first one should be used

fast urchin
#

@tiny zealot @rancid temple I found that if the Buff made by CP has multiple improvements, several Buffs will be displayed. One Buff cannot provide several improvements. I cannot make a stand-alone buff with its own name and multiple enhancements

#

Is there something wrong with what I wrote?

rancid temple
#

As far as I can tell, most of the buffs in Data/Buffs have multiple effects but only ever display one icon

tiny zealot
#

yeah getting the "single icon" behavior is probably a reason to put it in Data/Buffs instead of inline in Data/Objects

fast urchin
#

Thanks, that helps a lot

round thicket
rancid temple
#

The first EditImage is the all the time edit right?

round thicket
#

yes, that's the one that overlays with her normal skin color mouth

#

the second is only for if she has my costume on

rancid temple
#

Okay so remove the When from the first and for the second do

"When": {
  "Season": "fall",
  "Day": 27,
  "HasMod": "" //whatever your costume mod's id is
},
"Priority": "Late"
light jasper
rancid temple
#

No more social page spam?

safe apex
#

Hey guys, does anyone happen to know how I can target Leo for a new outfit on the mainland?

faint ingot
rancid temple
#

Nah like working with the correct roe, as for what it displays, when you're using context tags you have to override everything about the recipe there

#

So you have to tell it what the ingredient text is, what texture to use, and what position and size the rectangle will be on that texture

plain marsh
#

Where can I find the vanilla animal descriptions?

faint ingot
hard fern
#

🤔 shouldnt descriptions be on the wiki?

faint ingot
deep cypress
#

Many people use Spacecore tho. I have totally added spacecore for just one thing.

rancid temple
#

Yep, I said it was through SpaceCore like first thing lol

#

That said, in just CP you can't do it

faint ingot
#

Oh sorry I didn't see that. And yeah I know lots of people use it, this is my first mod though so I'm trying to keep it (relatively) simple

tiny zealot
#

many, but not all, people use spacecore. i would not add it for one thing. but i consider myself an outlier

fast urchin
#

I cant do this 😦

    {
        if (e.NameWithoutLocale.IsEquivalentTo("Data/Buffs"))
        {
            e.Edit(asset =>
            {
                // todo
                var data = asset.AsDictionary<string, BuffData>().Data;
                data["RedPandaBazaar_ExquisitelyStuffed"] = new Buff(
                    id: "RedPandaBazaar_ExquisitelyStuffed",
                    displayName: Tools.I18n.Get("ExquisitelyStuffed"),
                    description: Tools.I18n.Get("ExquisitelyStuffed"),
                    iconTexture: Tools.Helper.ModContent.Load<Texture2D>("assets/RedPandaBazaar_Buffs.png"),
                    iconSheetIndex: 0,
                    duration: Buff.ENDLESS,
                    effects: new BuffEffects()
                    {
                        Speed = { 4 },
                        Defense = { 4 },
                        CriticalChanceMultiplier = { 4 },
                        WeaponSpeedMultiplier = { 10 },
                        AttackMultiplier = { 10 }
                    }
                );
            });
        }
    }```
rancid temple
#

I had not been using it for a while, but used to use it all the time

plain marsh
hard fern
#

oh

#

data/farmanimals? (????)

#

idk

rancid temple
#

That's where the shop description is, though actually you'll have to follow that from there to Strings/StringsFromCSFiles and find the specific string it's referencing in there

round thicket
hard fern
#

😔 stringsfromcsfiles

round thicket
#

Wrong screenshot

lucid iron
#

do u think it's useful to be able to remap random sound cues in the game

deep cypress
#

Some transpiler code worked before 1.6.9. Now, it is giving a CLR error. What does this usually mean?

lucid iron
#

its meaningless without context, you will have to show us the transpiler and the target

deep cypress
#
             public static IEnumerable<CodeInstruction> Transpiler(IEnumerable<CodeInstruction> instructions)
     {
         SMonitor.Log($"Transpiling FarmerRenderer.drawHairAndAccesories");
         var codes = new List<CodeInstruction>(instructions);
         CodeInstruction texture = null;
         for (int i = 0; i < codes.Count; i++)
         {
             
             if (i > 0 && i < codes.Count - 1 && codes[i].opcode == OpCodes.Ldarg_S && (byte)codes[i].operand == 4 && codes[i + 1].opcode == OpCodes.Ldarg_S && (byte)codes[i + 1].operand == 5)
             {
                 texture = codes[i - 1].Clone();

                 SMonitor.Log("replacing added origin");
                 codes.Insert(i + 2, new CodeInstruction(OpCodes.Call, AccessTools.Method(typeof(ModEntry), nameof(ModEntry.ChangeAddedOrigin))));
                 codes.Insert(i + 1, texture);
                 codes.Insert(i + 1, new CodeInstruction(OpCodes.Ldarg_3));
                 i += 3;
             }
             else if (i < codes.Count - 1 && codes[i].opcode == OpCodes.Ldarg_S && (byte)codes[i].operand == 8 && codes[i + 1].opcode == OpCodes.Ldarg_S && (byte)codes[i + 1].operand == 5)
             {
                 SMonitor.Log("replacing actual origin");
                 codes.Insert(i + 2, new CodeInstruction(OpCodes.Call, AccessTools.Method(typeof(ModEntry), nameof(ModEntry.ChangeActualOrigin))));
                 codes.Insert(i + 1, texture);
                codes.Insert(i + 1, new CodeInstruction(OpCodes.Ldarg_3));
                 i += 3;
             } 
         }
         return codes.AsEnumerable();
     }
 }```
rancid temple
deep cypress
#

(Basically, this is for the playground mod, which is my 8 year old's favorite mod.)

lucid iron
#

oof farmer renderer

rancid temple
#

I love the "reuse sounds to death" design philosophy but not being unable to change the cues

lucid iron
#

im guessing the IL changed somehow, might just need to take a look and rewrite the transpiler

#

btw u should use CodeMatcher it's very nice Bolb

rancid temple
#

I had to rewrite Custom Locks Updated because the Door code got optimized lmao

deep cypress
#

What's codematcher?

lucid iron
#

its a helper provided by harmony

#

simplifies the process of finding a place to transpile

rancid temple
lucid iron
deep cypress
#

Ok! I will see what I can find! I am looking at the 1.6.8 code of Pathos's, and my own 1.6.10 decompile. it's hard to tell what's different

lucid iron
#

so this block here matches for the instructions listed, in opcode + operand format sorta, and then it replaces the instruction ad the matched index (start of the block bc i used MatchStartForward)

rancid temple
#

If you have access to the repo, you can just do a diff can't you?

lucid iron
#

we r on like 1.6.13 now blobcatgooglyblep

#

evry morn i walk up, update game, and run ilspycmd

deep cypress
#

The latest Pathos repo I see on his GitHub is 1.6.8, am I missing something?

lucid iron
#

the repo doesn't have IL does it think

tiny zealot
lucid iron
#

should just use ilspy to inspect ur own game

tiny zealot
#

(pathos is probably too busy to update the decompile repo rn. i think khloe was working on it, but also the updates keep coming)

rancid temple
#

(Khloe was talking about switching to use ILSpy 9 and before that I hadn't realized there was a version of ILSpy we were intended to be using lmao)

lucid iron
#

i think the version doesn't matter for you who is only reading

whole raptor
#

I guess the prediction of patches ending on 1.6.13 is gonna be very wrong 😅

lucid iron
#

but different versions of ilspy will emit different code and previously they prob wanted less line changes?

#

for less noise

rancid temple
#

Pathos decompile needs to be a little less broken and terrible I guess

rancid temple
#

Or perhaps it was last night, considering when patches usually happen

deep cypress
#

my ILspy of 1.6.13 has this where I want to change things:

IL_02db: ldarg.s position
        IL_02dd: ldarg.s origin
        IL_02df: call valuetype [MonoGame.Framework]Microsoft.Xna.Framework.Vector2 [MonoGame.Framework]Microsoft.Xna.Framework.Vector2::op_Addition(valuetype [MonoGame.Framework]Microsoft.Xna.Framework.Vector2, valuetype [MonoGame.Framework]Microsoft.Xna.Framework.Vector2)
    ```
tiny zealot
#

i don't even normally keep my own decompile around. i use pathos's for code reference (when applicable, of course) and only use ILSpy when i need to transpile so i can see the actual IL, which fortunately is always the same no matter what ancient version of ILSpy i am using lol

deep cypress
#

Essentially, what this is for is to change where the shirt originates, so it stays on farmer's body while on the little purple spingy dinosaur on the playground

#

(like change the Vector2)

lucid iron
# rancid temple I had started working on a mod to make trinket sound cues different, so that rem...

so i have 2 approaches i mind for the CueSwitcherUpper (name pending)

  1. prefix SoundBankWrapper.GetCue, inspect who is caller using StackTrace, secretly return a different cue for particular caller, challange with this is harmony changing method names but i think it's not too hard to account for that.
  2. obtain list of things to transpile from data, and do so (they would all be replace string const with another string const type of transpilers). problem with this is that i need to be absolved of sin
rancid temple
#

Lol, transpilers are like little secret sins, if you did it right nobody even knows

lucid iron
#

the first method also has distinct advantage of being changable while game runs

tiny zealot
light jasper
#

@drowsy pewter the uiis2 bug with tokenized names should be fixed now

lucid iron
#

yea both of these methods would depend on some custom asset

#

to indicate where and what to replace

tiny zealot
#

yeah but i mean the level beyond that. instead of writing all the transpilers to change to a new hardcoded string, i would probably indirect again and replace the const string with "load the value from this dict" or whatever. but that's me

lucid iron
#

yea that seems nice too Bolb

#

so then 1 and 2 would be able to achieve same things

tiny zealot
#

i am fine with transpilers but i am leery of inspecting the caller/stack trace. that seems brittle and prone to surprises

#

(lmao look at this guy not calling transpilers brittle, amirite)

lucid iron
#

StackFrame frame in stackTrace.GetFrames() and and then frame.GetMethod() seems fairly consistent about what it is return though

#

but there is case of delayed sound that need to be handled separate from GetCue

#

cus u cant trace back up to where it queue'd up the delayed action ofc

#

anyways i volunteer rokugin to impl this mod \j

brittle pasture
#

why not throw it in button's harmony crimes in CP mod

rancid temple
#

I'll have something ready in 3-5... years

lucid iron
light jasper
light jasper
#

fair enough lol

rancid temple
#

Oh yeah, I forgot to try that when I was fixing my transpiler

jolly bane
#

Hey so I'm trying to add a custom map to the game and I've looked all over the wiki but can't seem to do it. I've tried the "CustomLocations": [ {"Name": "example", "FromMapFile": "example.tmx" } ] thing but when I try to warp to the map it just says the location doesn't exist. Do I need some kind of framework for this? Thanks so much!

hard fern
#

🤔 i dont think you need custom locations anymore?

rancid temple
tiny zealot
#

CustomLocations is the 1.5-era deprecated method to add locations. you should be using Data/Locations instead

#

can you tell us which page on the wiki told you to use CustomLocations? we should update those instructions

rancid temple
#

CustomLocations just creates an entry in Data/Locations now lol

tiny zealot
#

yeah but it's strictly worse to use it, so we should try to convert people

rancid temple
#

Yeah, I understand why for compat but my "salt the wound" mentality just wants it to kick back an error instead

hard fern
#

here?

rancid temple
#

Oh the outdated wiki full of outdated stuff that's not properly marked as outdated all the time

lucid iron
#

i think there was some initiative to go through and mark outdated stuff

tiny zealot
#

(the official wiki also has a lot of outdated stuff on it, because not all of the migration data has been moved to the correct pages yet)

#

i tried to help recently and got spamblocked, so i stopped trying for the moment

rancid temple
#

I suppose, though it's a little more Frankenstein's monster with outdated pages still having updated information on it, haphazardly stitched into place

jolly bane
#

yeah I also saw that mods like Expanded and Zuzu use the same code so that's what I tried haha

rancid temple
#

Yeah well, they are from like a hundred years ago

#

/j

lucid iron
#

Data/Locations fairly straight forward AquaThumbsup

#

but do u have an actual tmx made?

jolly bane
#

yeah I modified WizardTower to make my own

rancid temple
#

Ugh, I need to stop modifying my examples lmao

jolly bane
#

so just "Action": "EditData(?)", "Target": "Data/Locations", "FromFile": "example.tmx"?

rancid temple
#

I had an example for adding a location and patching its entrance onto a map, but now it's a test bed for like 2 other mods

lucid iron
#

u can make a copy of WizardHouse as own entry then

#

naw look at vanilla Data/Locations.json

#

in unpacked

jolly bane
#

ohhh thats a lot more text

mighty ginkgo
#

i guess these kind of two patches are somewhat standard, almost minimal way to make a new location { "Action": "Load", "Target": "Maps/{{ModId}}_your_map_name", "FromFile": "path to your map file" }, { "Action": "EditData", "Target": "Data/Locations", "Entries": { "{{ModId}}_Your_location_name": { "DisplayName": "the display name for the location", "CreateOnLoad": { "MapPath": "Maps/{{ModId}}_your_map_name" } } } }

drowsy pewter
#

I totally forgot to check if you responded to my comment or not (since I don't think I get notifs for replies to replies)

mighty ginkgo
#

the wizard house has its own type btw it seems "Type": "StardewValley.Locations.WizardHouse"

rancid temple
#
"CreateOnLoad": {
  "MapPath": ""
}```
lucid iron
#

yea u should use null for that

mighty ginkgo
#

oh

lucid iron
#

until u actually want to go and make your own custom location type anyways (need spacecore type serializer)

brittle ledge
rancid temple
#

Eugh, wiki editing is my dispassion lol

#

Explaining information in a well structured and formatted way? I'm very bad at that

#

A wall of unintelligible spaghetti is much more my speed

shut grove
#

speaking of the wiki, this part confuses me a bit, do I need to keep the png after doing these steps, or can I delete them?

lucid iron
#

well i think all they want help wise is like

#

slap the outdated banner on a page if its outdated

brittle ledge
#

Aba and I have been going through and tagging stuff as outdated/trying to update it. If you see anything we missed, feel free to ping.

rancid temple
#

Ah well, I could do that lol

brittle ledge
#

I would love to have the map patching tutorial updated, but I frankly don't know the new patching method well enough to explain it.

lucid iron
#

say do we have ways to indicate version

brittle ledge
#

(I hate Tiled SBVLmaoDog )

rancid temple
lucid iron
#

so that we wont have to slap the "outdated in 1.7" on things if/when that comes around

rancid temple
#

For release you remove them, assuming they're vanilla files or files that other mods already load

#

Such as a Lumina tilesheet

woeful lintel
#

I am finally done with the FF rework! Now I go on a week of documentation writing, migrating and testing... (I can't even test proper yet since I have to update the example pack)

lucid iron
#

i keep 2 folders usually

#

the wip folder where i edit tmx in

#

and the actual cp mod folder

#

copy tmx over to mod for testing in game

brittle ledge
rancid temple
#

I prefer to edit my tmx in the unpacked contents lol

shut grove
rancid temple
#

Like some kind of barbarian

lucid iron
#

well that's also a second folder

#

the important part is "separation from actual content patcher mod you r releasing"

blissful saddle
#

anyone else interested in working with updating Custom Wallpaper Framework?

lucid iron
#

i thought u r doing it yggy

#

it didnt seem that bad

blissful saddle
#

I could make it run again, the custom wallpapers show off and are put in the walls

#

just not as intended

#

so I need someone more versed in wallpaper and draw tinkering

rancid temple
blissful saddle
#

I am just a mechanist mod

shut grove
rancid temple
#

Maybe it's in a different section, technically this is just about fixing tilesheet climbing and not about release so I guess it's fine that it's not here

#

Oh yeah, it's a little bit above this section

jolly bane
#

Thank you all for your help! Everything seems to be working correctly now, you guys are the best!

blissful saddle
#

I have the impression it's taking the icon png instead of the intended wallpaper

#

for reference, these are the icon and the intended

lucid iron
#

you might be drawing wrong texture yea

pine elbow
#

Is there a way to find the list of conditions? Things like SEASON, LOCATION, IS_EVENT, HAS_SEEN_EVENT, etc etc etc
I usually have to pull together bits and pieces by looking at pre-existing mods and seeing what they referenced

brittle pasture
#

[[Modding:Game_state_queries]]

shut grove
#

timing

#

lol

pine elbow
#

Ty!!! I had no clue what page it was on

shut grove
#

I found it by clicking on game state query in the explanation for ConditionalDoor touch actions

woeful lintel
#

Wait, hold on, before I commit to this, is it ok to use double square brackets [[]] for FF tokens to avoid conflicts with CP tokens? What I mean is that I want it to be possible to write a CP patch of a FF mod that uses a FF token in the editdata without triggering a CP feature.

blissful saddle
#

changing the path on CP I get it to open the right texture, but without the right scaling or reproduction:

lucid iron
#

I don't think anything uses [[]] in vanilla so u might be fine

blissful saddle
#

yeap, it would require more than an unofficial update, but a partial or complete rework of the framework

lucid iron
#

Unless u also support vanilla tokenized text?

woeful lintel
lucid iron
#

It's the text strings that r like

#

[LocalizedText:Strings/Some Asset]

#

Forget if that's the exact syntax but vanilla uses that for display names that should be translated

brittle pasture
#

yeah using square brackets may step on the tokenized strings handling

woeful lintel
#

uhm, I've been asked to include i18n support, and I'm planning to do so later, would using stuff like [[ModID]] mess it up?

lucid iron
#

i18n is something entirely different

#

This is the game's localization system Bolb

#

U can look up TokenParser in the decompile to see usage

brittle pasture
#

Out of the loop, is this a feature in FF content packs or CP-added FF content packs

rancid musk
#

Alright, time to decompile .12 and .13 into my fork.

brittle pasture
#

because if it's the former using {{}} is fine

shut grove
#

so, my location patching for compatability seems to work, but something screwy seems to have happened to my walls

blissful saddle
#

something screwy definitely is happening to your walls

woeful lintel
lucid iron
#

What's your patch mode

shut grove
#

overlay

#

with priority late

#

for the compatability one

brittle pasture
#

do we have any other brackets in the ASCII table

woeful lintel
#

the thing is, I'm not sure tokenized strings would ever show up in FF data

#

maybe I don't need to worry about it

shut grove
#

I added an extra patch layer for the broken wall parts, gonna see if that fixes it

#

the extra patch layer did not work

whole raptor
#

Maybe move it one tile lower so the vanilla "void" doesn't overlap? Or replace that part instead of overlay

rancid temple
#

It looks like you have black tiles from the upper room patching over the lower room

#

If you have any tiles in those spots, even with overlay it will still put them there

lucid iron