#Runekeeper Dev Branch Megathread

1 messages · Page 6 of 1

orchid flower
#

sure, I'm registering submenu items in loop because I need them for each encahnt separately

#

another interesting thing is that I couldn't manage to catch breakpoint in translate for submenu item

#

it should be called when context menu is opened, maybe when submenu itself is shown

#

sure, I'm using custom dictionary, but it works for "parent" in context menu so I see no reason for it to not work in submenu

#

I need to fix translations themselves, as descriptions as all weird

#

but that's not the issue itself

sturdy tusk
#

Is the duplicates a new issue?

orchid flower
#

yes

#

well, "new" can be as bit misleading as I didn't do any dev for past 2-3 days

sturdy tusk
#

Specifically, do you know if it started after the build containing this: #changelog message

orchid flower
#

let me enable magicology and check runic staff

#

I didn't touch that code since I created it

sturdy tusk
#

It seems like yes because a tweak to how @Register.usableActions works seems to have fixed it on my end

#

I vaguely remember you saying those "pin item" UAs were getting duplicated before though

#

Was that something else?

orchid flower
#

probably

#

because I definitely managed to get runic staff to work as intended, at least in context menu area

#

name is still weird

#

also it seems that item affix names lost their effects

sturdy tusk
#

I changed the way that works, sorry

#

You'll have to update english.json

orchid flower
#

thats perfectly fine

#

dont be sorry

#

its your task to improve wayward and I knew what i was getting into when I'm modding on dev

sturdy tusk
#

"itemAffix" in english.json became "itemAffixPostReformat"
And affixes that should happen before articles, IE, so that you can tweak the name of something before it appends "a/an" to the start, should be "itemAffixPreReformat"

orchid flower
#

I will have to play with those tomorrow

#

for you it will probably be your evening though

sturdy tusk
#

Yep

#

I'll deploy a build while you're asleep

orchid flower
#

thanks

#

I will let you play with things here and see why some things are not working

#

time to go to bed as its past midnight here

#

bye

#

🙂

sturdy tusk
#

Was there other things that aren't working?

orchid flower
#

names in the submenu. its not even calling my function to figure out enchant name

#
                .name(({ item }, action, context) => Translation.get(DispellingCloth.INSTANCE.dictionary, Texts.DispelEnchant)
                    .addArgs(context === UsableActionDisplayContext.None ? undefined : GetEnchantTranslation(item!,options.enchantId))
                ),```
sturdy tusk
#

I fixed the item groups, duplicate context menu options, and submenu thing, and affixes need to be updated on your end, I think that was everything?

#

ah okay i'll take a look thank you

orchid flower
#

at least I couldn't manage to get any breakpoints catch anything in this area

#

time to sleep

#

this time for real 🙂

sturdy tusk
#

oh this doesn't properly handle submenus containing actions that are only registered to a submenu instead of the main UsableActions registry

#

that's the issue

#

It's not possible to show normal action tooltips for UAs not registered to the main UsableActions registry

#

Like that's not even something I can add support for, it's literally impossible

#

Because the tooltip system is the same as the inspect dialog system and the inspect dialog is supposed to be able to resolve things that you inspected even between game reloads

#

But those UAs are not resolvable because they're not in the main registry

#

I can fix them not having translations in their submenu though, at least

#

I would very much recommend going the route of registering a Dispel UA for each possible magical property instead

#

And then make the submenu add a filtered list of those same UAs

#

It would allow the actions to be in the action bar and allow them to have tooltips

orchid flower
orchid flower
#

I also would have to register this for each possible subtype as well

#

since its entirely possible to create item with all 3 fanaticism and theurgy skill

sturdy tusk
#

It’s going to be similarly complex to make it work no matter which way you do it

#

Feels like it’s a better idea to make it the one that’s actually useful in action slots

#

“Dispel 1” in an action slot is pretty much useless

#

Vs “Dispel Worth”

orchid flower
#

but can you actually see someone using these in action slots?

sturdy tusk
#

I mean support for it comes out of the box

#

You have to opt out of it

orchid flower
#

then I would like to do that instead

sturdy tusk
#

Huh, alright

orchid flower
#

no matter how you try to use it, you won't be mass dispelling magical properties

sturdy tusk
#

Is it that expensive?

orchid flower
#

no, there is just no point in doing it

#

you can upgrade magical properties multiple times, as single upgrade likely wont max it out

#

so in that case actions make sense

#

but here its one time operation

sturdy tusk
#

Fair enough

orchid flower
#

it could make sense if I instead turned it into opposite of upgrading

sturdy tusk
#

I don’t remember the property names but the two you’re looking for should be in IUsableActionDefinition, or Description, or whatever I called it

orchid flower
#

lower enchant power with each use and when it's at the lowest possible value dispel it

sturdy tusk
#

There’s one for disabling a UA being used for anything other than the tooltip and stuff, and there’s one for making a UA not be slottable

#

I believe they’re ?: true ones

#

I’m not at PC or id give you the names

orchid flower
#

I think you gave me enough pointers to pull it off. I found something similar in QuickStack mod

#

slottable and displayLevel

orchid flower
#

did you deploy build?

sturdy tusk
#

Oops

#

I was in the middle of a commit and got distracted by irl stuff for hours, then just never remembered

#

Started the deploy, give it 10 mins or so

orchid flower
#

thanks

orchid flower
#

hmm... after your changes everything seems to work correctly

#

I get names there, I can dispel correct magical properties

#

only thing I don't have are tooltips

#

I will have to play with those

orchid flower
#

there is something broken with mod uploading. I'm looking at this screen for 6 minutes now

#

I didn't get any popup from steam

sturdy tusk
#

Any errors in DevTools ?

orchid flower
sturdy tusk
#

hmm

#

I'll add a card for investigating this, but I'm about to go to bed

orchid flower
#

its 30 mb with node_modules, it should take like 10 seconds

sturdy tusk
#

it doesn't include node_modules

#

we filter that out

#

so it's even tinier

orchid flower
#

ah, then it should be <5 sec

#

200 kb

#

it should be instant

#

game still can't recognize icons for ItemTypeExtra

sturdy tusk
#

What path is it trying to load from

orchid flower
#

G:/SteamLibrary/steamapps/common/Wayward/resources/app.asar/static/image/item/modmagicologyrunicstaffofchaos.png

sturdy tusk
#

And you’re not providing a custom path right?

#

Idk if you even can with that

#

Presumably it just doesn’t understand that that’s a modded one

#

I’ll look into it

#

I believe that’s the first time a mod has ever used item extra or doodad extra

orchid flower
#

its getting longer 🙂

#

I'm playing with those item affixes

sturdy tusk
#

Lmao how did you manage that?

orchid flower
#

actually, saying that feels like tongue twister

#
                "itemAffixPreReformat": {
            "modMagicologyRunicStaffInert": "Inert Runic Staff"
        },
        "itemAffixPostReformat": {
              "modMagicologyRunicStaffOfGood": "{0} of {$DEITY:GOOD}",
            "modMagicologyRunicStaffOfChaos": "{0} of {$DEITY:CHAOS}",
            "modMagicologyRunicStaffOfEvil": "{0} of {$DEITY:EVIL}",
        }```
#

it freaked out because of one single , at the end

#

fixed it

#

I think I will move runic staff actions to submenu but this time I will have to make it so that they can be put into action slots

gusty rapids
#

Alright, I'm finally home, just checked and it changes nothing performance-wise, it seems 😥

errant loom
#

gotcha, will look into other options soon

gusty rapids
#

Is it normal that some tamed creatures doesn't have a heart symbol above them? 🤔

#

Or is it the way to show the level of trust between the player and a creature?

tidal island
#

it wouldn't be trust if you knew for sure /j

junior valve
#

there is currently some bug where the hearts stop appearing at some point for some reason, and damage and item popups too
restarting game fixes it

gusty rapids
errant loom
#

can't find a way to replicate that issue by the way

gusty rapids
errant loom
#

ya

#

it just "happens" eventually it seems like

sturdy tusk
#

Might have fixed the container weight issues last night btw, @orchid flower let us know if you still notice weirdness where things are popping out of their containers or you can't insert stuff even though it seems like you can, etc. It's possible there's still places that aren't doing the calculations correctly

junior valve
#

reading the code, one way the Tamed icon can fail to appear is in addMarkerIcon(
it sets persistentMarker attribute/variable for the entity, even if renderers.notifier.addMarker( failed to actually register the marker to be rendered
this will prevent that entity from getting the marker (until restart since that attribute is not saved), but it shouldnt affect other notifications like damage popups
will save contents of notifier.notifications and upload it with related save if I fail to find the cause next time popups stop appearing

errant loom
#

thanks, will get Space to look at it

junior valve
#

found the issue, in addNotification(, this.mostRecent gets stuck when it reaches notification with infinite life, which is currently only tamed marker

return o.life <= 0 ? (... o = [set new notification] this.mostRecent++ ... , o) : void 0

one fix would be to add this.mostRecent++ also to the alternative branch, so it would skip this notification slot
didnt initially notice that the mostRecent++ was conditional, and though it occurred always

#

replication is to get a marker to show, so get within sight of a tamed creature, then drop/pick up a bunch of items so this.notifications[this.mostRecent] loops all the way around the capacity (currently 360)

sturdy tusk
#

i'm sorry everyone i'm inflicting a new ui change on y'all that you'll have to get used to

#

it's left aligned now so that history slot bindings actually count up going to the right like the main action bar

#

it would take too long to make it an option so it's just gonna be like this

orchid flower
#

so you are basically unifying history with action slots

#

makes sense

#

why can I close copntainer that is not opened and why closing chest closes my tools backpack?

sturdy tusk
#

lol

#

the open/close/toggle container UAs are the most cursed things ever

#

they have to be 3 total UAs (open, close, and toggle) that support everything from right clicking a bag to right clicking on a chest in the world to being slotted in an action slot to being filtered to a specific item or item type in an action slot etc etc

#

there are literally endless bugs to do with them

#

i'll look into this one

orchid flower
#

and about game performance when player is carrying lots of items - I remember that you said it is somehow connected to crafting code

#

or something like that

#

it goes through all items in player inventory?

sturdy tusk
#

I'm not super familiar with the current crafting system and how cached it is or isn't

#

I know it's had a lot of performance issues in the past

orchid flower
#

I was wondering if it would be possible to essentially return out of all of it if crafting UI is not opened

sturdy tusk
#

It would also need to know that there's no craft action slots

#

We could probably do that but probably not for Runekeeper

orchid flower
#

return out of them too - no crafting allowed

#

would it be feasible to do it as a mod?

sturdy tusk
#

probably actually

orchid flower
#

I know its not proper solution, but small steps at a time

sturdy tusk
#

something to do with injecting into the right place in crafting calculations and checking if the craft dialog is visible with a document.querySelector

#

Hacking a solution together in a mod sounds much easier than what we'd be doing internally to fully support that as a feature

#

You would want to inject into ItemRecipeRequirementChecker "process"

#

and cancel it and return false

orchid flower
#

it would have to be that inject pre

sturdy tusk
#

yep

#

You would also only want to do this if this isn't multiplayer

#

Because I can't guarantee it wouldn't cause desyncs

orchid flower
#

couldn't that work as clientside mod?

#

ah, serverside would still try crafting

sturdy tusk
#

Yep, ItemRecipeRequirementChecker.process is called on all ends whenever anyone attempts to craft

#

If that was given a boolean of whether or not it's being called from clientside code it would be easy

orchid flower
#
@Inject(ItemRecipeRequirementChecker , "process", InjectionPosition.Pre)
    public getOptions(api: IInjectionApi<ItemRecipeRequirementChecker, "process">)
    {
        api.cancelled = true;
        api.returnValue = false;
    }```
even with this code I still have isnanely bad framerate
#

like slideshow

#

so crafting is definitely not the biggest FPS eater

sturdy tusk
#

no ui open i'm assuming?

#

very weird i wonder what it's spending all that time doing

orchid flower
#

these 2 super long pauses that you will see is game doing "something" while I'm trying to move somewhere

#

I believe you remember my "super inventory", no crafting allowed mod is active

#

should I record trace?

#

2 almost 7 seconds freezes

#

which of those I can skip?

#

actually - @errant loom since I know that you are invested in performance I will take the liberty to call you here

sturdy tusk
#

Oh it’s action slots

#

I’m surprised this is calling getOrderedContainerItems, it shouldn’t have to

#

That implies it’s looping through everything

#

In the process of doing getBestSafeItems most likely

#

What’s the weight mod you’re using that causes cursed stuff like this?

orchid flower
#

It really needs to be cached

#

It's not like it's causing this weirdness, it just allows me to push things to extreme

sturdy tusk
#

You can make negative weights in the normal game?

orchid flower
#

I think it's called useful chests, it's on steam workshop

#

That is the result of bug in storing enchant

#

Its strength is based on container capacity

#

With no sanity cap

sturdy tusk
#

So Drathy hasn’t fixed this? Or did he just not add something to fix old ones?

orchid flower
#

No idea

#

It's the same save I sent you that had 18k items

sturdy tusk
#

Yeah I just can’t replicate this exactly without the same mod because everything pops out of the chests

orchid flower
#

But back on the topic- you can reach a similar state if you just run through large tree farm with actions to dismantle everything

sturdy tusk
#

I’ll look into the storing magic after I look into why this is hurting perf

orchid flower
#

And diverse so you will have huge weight limit

#

1800 cordage seems like a lot until you realize it's only about 200 weight. My character has 3x bigger weight limit

sturdy tusk
#

If you close your inventory dialog and send that save I can use debug tools to add a huge weight bonus which would allow me to test it without another mod

#

I don’t have a copy of the save with the inventory closed anymore

orchid flower
#

If I created best storing chests I probably could fit 18000 cordage in my inventory even without that mod

orchid flower
orchid flower
#

Or just sanity cap it at 50% or so

#

Its this mod

#

sorry, this save has inventory opened

#

with the mod it loads relatively fast

sturdy tusk
#

Thank you! Will look tmrw, have been sleeping earlier recently bcuz a noisy bird keeps waking me up at 7am lol

orchid flower
#

I have a feeling that Huntsman milestone is not working

tidal island
#

What's this little yellow thing at the left of the "fire" icon?

#

this is what it looks like for cold

sturdy tusk
#

it's that icon also being broken on your interface scale

tidal island
#

well that's fun

#

here's my interface scale btw

#

why uh

#

my brain is not working

#

my interface scale is set to 1.25

#

that didn't not need a screenshot

#

here's fire and cold at 1.0 interface scale btw

sturdy tusk
#

oh in that case it's broken due to your OS scaling actually

#

that's useful to know

tidal island
#

lmao

#

I'm your dedicated dpi scaling guinea pig because of my ratchet ass monitors

gusty rapids
#

Oh, btw, I have a question about the inteface scale. Is it possible to choose a size between the 1.00 and 1.25? Or it's hardcoded and only the scales that are present are available?

sturdy tusk
#

yes it's specific sizes so that the images appear correctly

gusty rapids
#

It's just that while 1.25 is comfortable for my eyes, it breaks the UI by cutting some stuff out.

sturdy tusk
#

can you send screenshots of anything broken?

#

and i'll fix it

gusty rapids
gusty rapids
sturdy tusk
#

examples are still appreciated in cases like that, i can maybe improve things a bit

gusty rapids
#

I might send some things if I'll see them :3

sturdy tusk
#

one thing i do intend to do eventually btw, is allow choosing a separate interface scale for all dialogs and all static ui components (stats, messages, action bar, menu bar, etc), and the menu

orchid flower
#

Build didn't pass

#

does altar quality has any impact on sacrifice success rate? if not then it should

orchid flower
#

it could be like +10% on masterwork altar

sturdy tusk
#

So ItemFinder itself was cached correctly

#

ItemFinder.best() however, calls an optional postfilter function if it's given to the item finder instance

#

And in this case "best item of type" UAs had a postfilter that verifies that an item is usable for the UA

#

Basically, if there's 10 items of the type for the UA but the first 9 aren't currently usable (maybe they're protected and they would be broken) it chooses the 10th one

#

There were two issues with postfilter:

  1. its result wasn't cached like the rest of the item finder stuff
  2. it was calling postfilter on EVERY SINGLE ITEM AVAILBLE, even though it only actually would end up using the first one that passed the postfilter test
#

It was a pretty bad bug, but it was also pretty specific what was needed to cause it

#

After the fix the perf of that save is about normal

orchid flower
#

basically lots of items, and only rather small subset of players were running with crazy amount of items in their pockets

sturdy tusk
#

yep

orchid flower
#

can you check if it works the same after entering boat?

sturdy tusk
#

in your case you had one action that matched 1588 items or something crazy like that, so it was checking if that action was usable with each of those items individually

orchid flower
#

for some reason performance while walking was not great but on boat everything suddenly got 10x worse

#

it was like one frame per 10 seconds

sturdy tusk
#

I will have to spawn in a boat because I can't open the inventory lol

#

this is probably a different bug

#

this is really bad

orchid flower
#

so it still is like this?

sturdy tusk
#

the boat is still bugged because it's something different

#

looking into it

orchid flower
#

🙂

#

Right now I'm checking if beacon will also crash the same as dev does

#

for some reason dev crashes with error 134 way too often

sturdy tusk
#

moving around in a vehicle appears to be causing item finder to need to recompute from scratch

#

it's because it's taking damage

#

apparently i set it up so that all events that item finder listens for causes it to think it needs to recompute everything from scratch, so then next time it's needed it does that recalculation

#

it's not smart enough atm

#

i need to refactor this to not care about item state changes for items that aren't in the list of matching items

#

that was easier than i expected nvm

#

no refactoring necessary

#

certain item state changes will still result in a lag spike in a scenario like this, but most likely they won't be things you're doing constantly like walking around or sailing lol

orchid flower
#

I assume picking up items will cause this right?

sturdy tusk
#

specifically:

  • if you pick up another item
  • if an item changes its type (ie eating an apple turning it into its seeds, letting meat decay into rotten meat, etc)
  • if you toggle whether an item is protected
#

riding and dismounting a sailboat will also cause a lag spike because the internal entity changes when that happens, which counts as picking up new items

orchid flower
#

it would be good if that calculation occurred when item that is being picked up etc was matching action slot etc

sturdy tusk
#

i can't do that without an actually large amount of refactoring unfortunately

#

i'll put it in the back of my mind for later improvements though

orchid flower
#

so like "butcher action only does its math when something sharp enters inventory and is entirely uninterested in some random bone fragments that I picked up"

sturdy tusk
#

the actual problem is that right now it rechecks all items instead of only checking the new ones

#

i believe the reason it works like that is because itemfinder is set up to try to find the "best" item, so it has to recompare everything and sort them again

#

but the way it should work is it should instead generate a sort value for each item and then a new item coming in can just be placed in the correct position by only calculating its own sort value

orchid flower
#

that would be a lot of table shifting

#

since we are dealing with best can't we just compare against current best?

#

new item entering can only end up in 2 "states" - its new best or is not new best

sturdy tusk
#

then if the best item is broken or becomes unusable it has to recalculate from scratch to find the new best

orchid flower
#

still less math to do on average

sturdy tusk
#

should be about the same?

orchid flower
#

how often do you break tool vs how often do you pick random item that matches some action slot?

sturdy tusk
#

oh that's what you meant

orchid flower
#

and shifting indexes in table that can possibly have few hundred or way more items and putting something at index 2 cant be cheap

sturdy tusk
#

i was thinking of it purely from the angle of sorting a single new item in to a new position vs finding the one of highest priority

#

oh, no, that's fine

#

it's pretty fast

orchid flower
#

but operations like these probably quickly add up

#

sure, 0.001 second is next to nothing, but do something like this 1000 times and you have lag

sturdy tusk
#

33.5 ms to put an item at the start of an array 10,000,000 items long

orchid flower
#

ok, thats fast

sturdy tusk
#

oh weird it's faster after doing it once too

#

i tried adding 8 more things simultaneously and it only took 6ms

orchid flower
#

can you do that on smaller table, like 1000 elements but repeat that 500 times

sturdy tusk
#

.2ms

orchid flower
#

that is fast

#

weirdly fast

sturdy tusk
#

i'm actually kinda impressed, i wonder how js arrays work internally

orchid flower
#

that is mamzing performance actually

sturdy tusk
#

an array must be like multiple sub array views stitched together internally

#

so when you start unshifting it like allocates a bunch of space there

orchid flower
#

I wonder how often it reallocates memory

sturdy tusk
#

insertion might be worse

#

i'll try that

#

that takes half the time

#

i even randomised where it inserted each item

orchid flower
#

so even faster

#

cool

sturdy tusk
orchid flower
#

and your code also measures generating that random number too

#

which probably also adds tiny bit of the time to it

#

mathing every item and then putting new items into long list won't be performance heavy

sturdy tusk
#

oh, this one scales up (maybe exponentially?) with array size

#

i got 1.5s doing the exact same thing on the 10mil array

orchid flower
#

I don't think we will use that many items

sturdy tusk
#

yeah me neither

orchid flower
#

though.... challenge accepted 🙂

sturdy tusk
#

lmfao

orchid flower
#

I have to start collecting and refining cordage

sturdy tusk
#

anyway, i won't be able to refactor this algorithm to do that sort value stuff until later

orchid flower
#

what about only comparing new items with best when best exists and doing full math when best disappears?

sturdy tusk
#

because it's going to be a little bit more complicated than just generating a number because the sort functions use fallbacks. I think I'll probably have to generate an array of numbers for the sort value of each check

orchid flower
#

it should be way easier than your full fledged solution

#

and still give us considerable value

sturdy tusk
#

your solution requires reworking the way some stuff works internally in a way that makes the full thing later require reverting it

#

which means any further changes to itemfinder code would need to get merged with the old code on revert

orchid flower
#

so its basically the question of development time vs value generated right now

#

because later it will be scrapped

sturdy tusk
#

it doesn't really impact enough people for me to be able to justify that time

#

even the full sort value refactor is hard to justify

#

later i'll probably do it anyway though because it bugs me that this wasn't set up that way in the first place

orchid flower
#

going back to my beacon call stability test - becaon is not crashing

#

at all

#

at least for last ~1.5h

#

I will leave it running for longer to be sure

#

but by now dev would have already crashed

#

lately it even happens with real time game paused

sturdy tusk
#

love when technology we rely on gets buggier as it matures

orchid flower
#

I altered some things in the console so my hunger actually fills itself up and I gain 100k health per turn

#

and I have to say, it feels a bit smoother than dev

#

not much tho

#

like gaining 3-5 fps when you are already running at ~45 fps

orchid flower
#

almost 2h and still stable

orchid flower
#

@errant loom stability of the game definitely decreased in dev when compared to beacon. In dev I lately get crash with error 134 even when game is paused in menu but beacon has been running just fine for over 2.5h without any issues

orchid flower
#

Beacon is still running just fine but dev 20 mins after I launched it when I right clicked bottle of water

errant loom
#

could you run the game from the command prompt next time? it might have more useful information for us that it logs when it crashes like that

orchid flower
#

ok

gusty rapids
#

Guys, I think that Crafter milestone is bugged. It gives the opposite of extra durability for the cost of increased crafting difficulty. I mean, all of my tools and stuff are fragile as heck! It wasn't the case before I chose this milestone.

#

Just checked, played without it, my tools are much more durable.

tidal island
#

It might be the increased crafting difficulty resulting in a worse roll

gusty rapids
tidal island
#

it wasn't broken before?

#

I have been having durability issues with crafter but I assumed it was because of crafting difficulty

gusty rapids
#

Like, the chest I crafted rn with this milestone has only 6 health! My woodworking skill is 49% rn, I don't think that it should give such a fragile result!

tidal island
#

what the hell

#

chests aren't supposed to have 6 durability lmao

gusty rapids
gusty rapids
#

Only the bone clay saves me and my stuff, ngl 😄 It usually gives a lot of health.

tidal island
#

the bone clay what?

#

oh glue right

orchid flower
#

it gives you basically nothing while making everything super hard

gusty rapids
tidal island
#

is this a window into a language other than english

#

I love finding out stuff about languages other than english

tidal island
#

english is the worst language ever

gusty rapids
gusty rapids
tidal island
#

I recommend waiting until the devs look into this because it does sound like something's gone wrong with the milestone

gusty rapids
orchid flower
#

I can recommend you my tried and trusted set of milestones

#

will you start from scratch or do you want to just remove it from your game?

gusty rapids
junior valve
#

It seems the issue is in crafting code, the durability variable that is set by Crafter milestone is referenced only in getDefaultDurability( function, and it correctly returns higher durability with the milestone localIsland.items.getDefaultDurability(localPlayer,8,ItemType.WoodenChest) returned 23 in my current save, and 101 in a new game with Crafter

errant loom
#

will check!

junior valve
#

craft( function is used for actually crafting, and the issue seems to be that for all components, it calculates ratio of current max durability to getDefaultDurability(, assuming the component was crafted, and thus returns 1/4 of the actual fraction

errant loom
#
            // Durability limiter based on item
            if (item.durabilityMax >= itemDur * 5) {
                item.durabilityMax = Math.floor(itemDur * 5) + this.getDefaultDurability(human, item.weight, item.type);
            }
#

the issue is likely that it is only doing this when the item is maxed

tidal island
#

haha owned

#

alright well guess there we go

junior valve
#

further testing, it seems that gathered items also get the multiplier, but when disassembling it does not get applied, which results in items with (now abnormally) low durability
so the Crafter effect is incorrectly applied to non-crafted items, and crafting expects components to have higher max durability from Crafter effect

junior valve
#

There seems to be some bugs with action slots since todays update, 2 I noticed
1 : Action slot with Cast action using specific net, targetting hovered tile : if there is Blood in Water (from shark) in the targeted tile, pressing keys for the action does nothing, the action slot animates like during normal press, but nothing happens, turn does not advance, no message is shown
2 : Action slot with Butcher action using specific knife, if there are Items on the same tile as the corpse, or the above mentioned Blood in Water, the action slot cant be used, it says that the action requires a valid item to be used
seems 2 got fixed by resetting the action slot: clearing and setting it again
while bug 2 was still present, un/protecting the knife (which was in protected container) allowed the action slot to be used, but it would appear again later, and it could also be used via ctrl+Right clicking on tile to use an action on target tile
checking 1 further, using Cast action via ctrl+Right click menu also does nothing, except it creates an action in the automatic slots
can provide a save file if you want to check bug 2

sturdy tusk
#

save files set up so that i have to press just a couple buttons to repro a bug are super useful, but not necessary. looking into these

#

very interesting that blood in water prevents the action

junior valve
#

It seems that items on targeted tile also prevent it, and I believe one use of Cast was to pick up remote items

#

also to correct for case 2, the action slot is was Use Best Bronze Knife of any quality, not specifically that one knife
also returning to menu then reloading while facing a corpse would enable use of the action slot once, doing so while not facing corpse would not

sturdy tusk
#

sounds like that's a best item caching bug

#

i did change the way that works for perf last night

#

a save for bug 2 would be useful

#

not sure how to repro that one

junior valve
#

might be an issue when there is only 1 item of allowed type in protected container

mighty moss
#

hey how do you get krakens now? pretty sure i can tank/heal till i kill one but how do you get em to spawn now?

junior valve
#

High tier zones, 7+ at surface during night only (21 to 4), or 6+ in caves at any time, Wetlands, Coastal, or Arid
Fishing them up works like before, but only in zones and time when they can spawn

mighty moss
#

hmmm ok thanks I'll try that see if i can get one.

sturdy tusk
#

okay fixed both of the bugs i caused last night

#

The first issue was due to some changes I made to internal code that allows executing an action on a tile. It was specifically broken for ranged actions targeting an entity

#

The second issue was due to the performance fixes for the way ItemFinder stuff works

#

It was not clearing part of the cache in certain cases correctly

#

Specifically, the change I did was make it clear the "best item" on tick and on changing your direction. Which means it can look through the cached list of matching items and find the new best (that is actually usable) from it in those cases

#

Since the "best item" requires knowing if the action is usable with one item and not with another, this is required

orchid flower
#

Is exceptional chaos rune effect a one way route? I executed it's power about 10 times on the surface and localPlayer.tile.zone.zLayer is always 0

sturdy tusk
#

It shouldn’t be, maybe I messed up

junior valve
#

looking at code, what creatures can spawn (getCreatureSet() function) depends on the zone.zLayer variable
the exceptional rune of chaos effect (randomizeLayer( function) picks random z layer (in base game there are only 2 : Cave and Surface), but filters out current one based on variable zone.zonePoint.z, which is unchanged by the effect

sturdy tusk
#

lol

#

I was trying to make this future proof for if we add new z layers and I broke it

#

It used to be hardcoded to do cave if it was surface and surface if it was cave

#

Will be changing it to this.zLayer ?? this.zonePoint.z

orchid flower
#

how do I get list of all creatures that could potentially spawn in current zone with current layer? getSpawnableCreatures() likely returns everything regardless of the layer

sturdy tusk
#

If you want to ignore time of day you’ll need to write your own function

junior valve
#

I use this, I believe it is what Chiri previously posted shortly after the zone update
localPlayer.tile.zone.getCreatureSet().map(type => CreatureType[type])
#1179948120721870962 message

orchid flower
#

this I believe only shows what can spawn currently

#

so current layer, current time

sturdy tusk
#

all our current functions that work with what's spawnable

#

you should be able to stitch together something for this

orchid flower
#

thanks 🙂

#

I am working on small info dump for my runic staff

#

consumes 1.5 more mana than executing relic power

orchid flower
#

And back to adding more layers - I wonder how troposphere will work with zones

sturdy tusk
#

Troposphere fully supports creature zones

orchid flower
#

So it's basically the 3rd layer of the map?

sturdy tusk
#

Yeah

#

I believe the chaos rune treats it like that

#

Note, next build will change the Deity import from import { Deity } to import Deity

#

In case you're using that import

sturdy tusk
#

Thank y'all so much for all the feedback and bug reports over the course of this major, we've had an absolutely massive amount of technical churn this time and yet I'm actually still feeling pretty confident that we've caught most of the issues and fixed the most important of them (that we can)

#

The stability issues and performance issues, I'm not sure what we're going to need to do to address those because those are likely due to Electron

#

But everything on the game side, the feedback and bug reports really saved us from a really hectic launch

orchid flower
#

another small thing related to chaos rune - in some cases executing normal chaos rune changes nothing. Could you add special message in such case?

#

maybe something like "creatures go silent for a moment and then they resume their howls unchanged" or something similar

tidal island
#

ayyyyy dpi scaling fixes

#

it's always extremely funny to me when they do DPI fixes because it's like. how are my monitors the only ones with DPI issues. do I just have bad eyes or something

#

and it's not just wayward, a bunch of unity games had DPI scaling issues too and I'm just like. what is going on here.

orchid flower
#

as for stability - I'm not even sure how to comment on that because since I started launching game with C:\Windows\System32\cmd.exe /k "cd /d "G:\SteamLibrary\steamapps\common\Wayward" & start wayward.exe" my game didnt crash. for now I will say its just pure luck

orchid flower
#

I randomly get "game died" errors

#

yesterday Drathy suggested that I start game from console so maybe we would get more info about why its dying.

#

since I started doing that I got no crashes so far, and I played for about 4h

sturdy tusk
sturdy tusk
#

i changed one thing and it fixed every single one of your reported bugs because they all used the same thing

tidal island
#

oo

teal stirrup
#

Any best practices for improving performance on dev branch? Or any specific feedback needed to diagnose issues? Looks like yall are already actively addressing it, so thanks for the efforts!

orchid flower
#

you can try disabling crafting from adjacent containers, or alternatively use mod that entirely disables crafting when crafting window is closed.

#

mousing over large stacks of items will cost you some FPS because game desperately tries to generate string with item names, so avoid that

#

other than that, if it looks particularly bad you can record vid of it and generate trace

#

but do remember that engine this game runs on was not really designed for games as complex as wayward

#

we all are fighting to fix stuff as much as possible

gusty rapids
#

I just don't understand why is it that stable branch is way more performance friendly, like, it really is smooth like butter! 🥲

sturdy tusk
#

Out of curiosity what kind of gpu do you have?

gusty rapids
sturdy tusk
#

I think the issue is an electron bug that specifically affects nvidia

#

IE what Wayward runs on

#

I was able to do fps testing running Beacon’s Call, Runekeeper on Beacon’s Call’s Electron version, and Runekeeper on the current Electron version, and I didn’t notice anything

#

Pretty equivalent between them

#

On a 144hz monitor I was getting about 130ish on average on all three

#

And i’m on AMD

#

I did notice on my end that if I disable overlay support in the performance settings, perf gets worse instead of better, but idk if you have that disabled or if it even results in the same thing on nvidia

gusty rapids
#

I tried to disable Steam overlay, didn't see the difference 🤔

#

Is where a way to fix it though? I mean, I'm pretty much got used to bad performance, although I'd love to play this game while it's performing smoothly 🙂

sturdy tusk
#

We have no idea

#

We might have to downgrade electron if we don’t find something

#

Not exactly a workable solution longterm though

gusty rapids
#

Hope you will find a good solution that will suit everybody 🥺 Thank you for your hard work!

orchid flower
#

because I assume its more complex than just replacing app.asar

errant loom
#

going backwards corrupts save data completely

orchid flower
#

its not a problem if we export it

errant loom
#

you can technically download any version of Electron and run Wayward in it using the Steam files

#

you just copy over Electron to the folder and rename the electron.exe to wayward.exe

#

that's what i will be doing soon to figure out the perf stuff

orchid flower
#

what version does beacon runs on?

#

I will ask my wife to check performance too. she also has Nvidia 1060 too so it might be interesting to compare both

errant loom
#

Electron 22.3.14

orchid flower
#

darn, latest stable is 32.1

#

I wonder if it will run wayward...

#

I just loaded Runekeeper with electron 22.3.14 and I have to say it runs way worse

#

ok, it got a bit better after a while

#

I tried latest version too

#

33.0.0 beta 1 or something like this

#

its performance tab has interesting thing added

#

it seems like each row is 1 movement of character

#

basically how much time game needed for it to happen

#

I wonder why these times are so uneven

#

nah, its not row per movement

#

its still something, and I wonder if we perceive these as "choppy"

#

to get smooth 60 fps every frame has to generate in less than 16 ms, so these frames that take longer would be the culprit

errant loom
#

ya, there's some stuttering going on for sure

#

when i checked its showing as dropped frames

#

in the performance tab

#

with the newest Electron/Runekeeper

#

which wasn't there in Beacon's Call

orchid flower
#

do you think that what we call performance issues is actually just game dropping frames for whatever reason?

#

if game drops few frames every few frames we would definitely call it performance issues even if the truth is actually different

errant loom
#

that is my theory, yes

#

you can see them here

#

sometimes they happen after a CPU time block, but sometimes for no reason seemingly

#

they are sparse for me in Beacon's Call, but in Runekeeper:

#

it's basically always

#

in Beacon's Call, i get around 120-144fps when moving around

#

in Runekeeper, it drops down to like 60fps

#

it isn't UI related, removing all (html/CSS-based) UI doesn't fix it, although improves lows by like 10fps

#

there's maybe some renderer/gpu changes that are clashing with what we have set

errant loom
orchid flower
#

it would be wild if these were also to blame for my crashes

sturdy tusk
sturdy tusk
#

Yeah it's pretty equivalent across all

#

Beacon's Call might be the tiniest bit less total dropped frames, barely noticeable

#

Runekeeper on old Electron seems maybe like 2% worse

#

It's very slight

#

And then Runekeeper on new Electron seems about the same, though I am noticing the dropped frames are more grouped up

#

Maybe it's more noticeable because of that?

#

I do have an idea to reduce the chance of frame drops though

#

But also yeah keep in mind my results are frame drops on 144 so that's likely to happen any time anything takes longer than 7ms

errant loom
#

using CPU throttling it's easier to see what is going on

#

it does seem like something changed with how stuff is rendered or like the priority of CPU-bound stuff

#

single movement:

#

all greens, then huge frame drops after the move for a bit

#

this is with 6x CPU slowdown

#

this is very bizarre

#

there's a definate pattern though

#

close zoom on all those reds

sturdy tusk
#

weird

#

That's not something I get on my end

#

Oh wait you reduced cpu

#

maybe i'll try that

errant loom
#

ah, all those reds are particle effects

#

so it's lagging each time it tried to draw them

#

if i try on land, it lags after the move, but nearly as bad

#

since it stops trying to render the game

sturdy tusk
#

The game is completely unplayable for me on 6x slowdown

errant loom
#

ya, but it's just to see if it can trigger the same skips we are seeing hah

sturdy tusk
#

I'm actually not getting the same kind of dropped frames as you on 6x, interestingly

#

i get "long" frames due to tasks taking too long

#

and then i get long dropped frames rarely

#

i don't get the every render dropped frames though

#

it's a lot worse if i have any tooltip stuff going on obviously

#

not surprising

errant loom
#

interesting

sturdy tusk
#

I do think if we can make more things async via the new scheduler.yield thing it should help at least though

#

I might try to add that to tooltips

errant loom
#

i don't know if the scheduler stuff has any impact on GPU though

#

i guess we still need to call the render process

#

so it would help with that maybe

orchid flower
#

I have a feeling that game will be very smooth after you find fix for frame dropping

sturdy tusk
#

I can’t promise we’ll fix it entirely but we have some things to try that could result in less dropped frames

#

I did one of them earlier

#

Should mean world tooltips are less likely to cause stutters

#

Most of what we want to try will have to wait for Spacetech because it’s core engine stuff

orchid flower
#

Is it possible to tell the game to reload js file from the drive and execute it as if it was a function?

sturdy tusk
#

No, we explicitly disallow things like that

#

We have guards against it

#

It's to keep people safe from malicious mods

#

There is a way to reload a mod, but I'm not sure if it works

#

Other than that, best bet is just ctrl + f5

orchid flower
#

I found weird tile bug

tidal island
#

I love weird bugs

orchid flower
#

another one

#

that funny tile is freezing fresh water

#

I dont think claw worms should appear from digging ice

#

also, would it be possible to add special boots that prevent slipping on ice?

tidal island
#

spiked cleats

sturdy tusk
#

Someone else asked that today

#

All boots that aren’t leather or scale prevent slipping

#

You’re just wearing slippery ones

orchid flower
#

ah

#

that explains it

#

chiri, I remember you fixing some throwing bug earlier, I think found new one

#

should I be able to throw item at tile marked red?

#

because currently its impossible

#

throw action just grays out

#

same thing happens when I try to fire projectile at that tile

#

another interesting thing is that freezing fresh water dont have shallow variant for better or worse, which makes spreading it easier

errant loom
#

i don't understand how, but the performance is worse now

#

actually, i think the FPS meter is bugged

orchid flower
#

Item highlight broke. It just refuses to exit fabric crafting highlight

#

oh, I can highlight ingredients for both fabric and wood floor

orchid flower
#

@errant loom Do you remember that you told me to launch the game with console to get more details on my crashes?

#

[46052:000038E8005D4000]   944189 ms: Scavenge 340.4 (352.8) -> 339.7 (352.8) MB, pooled: 1 MB, 0.30 / 0.00 ms  (average mu = 0.957, current mu = 0.985) task;
[46052:000038E8005D4000]   944803 ms: Mark-Compact (reduce) 339.7 (352.8) -> 339.2 (352.3) MB, pooled: 0 MB, 353.42 / 0.00 ms  (average mu = 0.987, current mu = 0.993) CppHeap allocation failure; GC in old space requested


<--- JS stacktrace --->

FATAL ERROR: Oilpan: Large allocation. Ran out of reservation Allocation failed - process out of memory

this is I believe most interesting part

#

process out of memory

#

I have 32 gb ram

#

so unless wayward needs ~20gb of ram there is literally no way for it to run out of ram

#

I think that this might be something for Spacetech

errant loom
#

interesting

orchid flower
#

from what I see wayward is keeping itself under 5gb

errant loom
#

do you have the dev tools open?

orchid flower
#

not yet

errant loom
#

no, i meant when it crashed

orchid flower
#

do you want to to check something there?

#

no

#

but I can open them now

#

this error repeats itself, so we just have to wait

errant loom
#

did you travel?

#

before/during?

orchid flower
#

game was paused

#

I was in the kitchen preping some food

errant loom
#

how long was it left paused?

#

and how long was the game opened for approx?

orchid flower
#

as for what I was doing before it - terraforming my ice cap island

#

as for how long it was paused - I would say somewhere between 15-25 min

#

and I launched it 1.5-2h earlier

#

and now it crashed again

#

game was paused

#

I sadly dont have control over dev tools

#

they are frozen

#

ok, I kind of have some control over them

#

this is how graphs for wayward look from System Informer app

#

here is the log from console, but its almost copy-paste of the first one with some minor details changes

#

this time game was launched for about an hour and paused for maybe 5 mins, maybe less

#

do you want me to check something or can I restart wayward?

errant loom
#

that's fine for now

#

will look into some things

#

i'm interested in what your performance.memory looks like run via console

orchid flower
#

how do I launch that? is that parameter?

errant loom
#

just in console in dev tools

orchid flower
#

so just record performance trace?

errant loom
orchid flower
#

ah\

errant loom
#

thanks

orchid flower
#

if I'm not blind my numbers are 3.5x bigger other than that HeapSizeLimit

#

only thing that I'm doing differently than any normal player is that I have chests that have insane weight limits, normally I would need ~15x more chests

#

so I guess that eats a lot of memory

gusty rapids
#

I think that "Open Folder" Button doesn't work.

orchid flower
#

freezing fresh water & deep fresh water

orchid flower
#

Is there any way other than "drink in front" to remove snow from tile without risking creating hole in the dirt?

#

this definitely shouldn't be here

sturdy tusk
#

That’s actually intentional, it made more sense back when actions & item actions weren’t separate menus and so q was generic “do action (probably on facing tile)”

#

I think I agree it should be removed now

#

Might not get to it for Runekeeper though

tidal island
#

or does that have the risk of creating a hole in the dirt?

orchid flower
#

I can collect snow?

#

I didn't even notice

#

should eat stat boosts be in this order? I feel like its in reverse

orchid flower
#

there is something very off with how "recent" sort order works now, likely due to #changelog message

#

when I pick up items dropped from enemy they end up in first slot, but after I drop them and pick them up again they go to the last slot

sturdy tusk
#

Wat

#

That’s weird

orchid flower
#

My pin item mod shouldn't have anything to do with it as it only operates on items with specific data

#

dropped items don't have it

sturdy tusk
#

Hmm that actually could confuse it

#

Is your sort recent first or recent last?

orchid flower
sturdy tusk
#

And when you add an item and it goes in the wrong spot, does closing the container and reopening it change the position?

orchid flower
#

I will test it without pin item mod

#

yeah... it seems like its my mod

#

false alarm then

#

but I wonder how something so simple broke in such a weird way

#

sorry

sturdy tusk
#

I think most likely that particular change you mentioned didn’t break this

orchid flower
#
private GetPin(item:Item|undefined) :number
    {
        if (item !== undefined)
        {
            if (item.hasData(PIN_ITEM))
                return PIN_ITEM_ORDER + item.getData<number>(PIN_ITEM)!.valueOf()
            else if (item.containedWithin?.asEntity)
            {
                const pinnedItemTypes = item.containedWithin!.asEntity!.getData<PinnedItemTypes>(PIN_ITEMTYPE) ?? []
                if (pinnedItemTypes[item.type] !== undefined)
                    return PIN_ITEM_ORDER + pinnedItemTypes[item.type]!
            }
        }
        return 0;
    }
    @Inject(ItemManagerInjectable, "createSorter", InjectionPosition.Post)
    public createSorter(api: IInjectionApi<IItemManagerInjectable, "createSorter">) {
        let defaultSorter = api.returnValue;
        api.returnValue = Sorter((item:Item|undefined) => this.GetPin(item))
            .addSortFunctionFallback((a:Item|undefined, b:Item|undefined) => defaultSorter !== undefined ? defaultSorter(a, b) : 0 );
    }
    @Inject(ItemManager, "getItemInsertIndexInContainer", InjectionPosition.Pre)
    public onGetItemInsertIndexInContainer(api: IInjectionApi<ItemManager, "getItemInsertIndexInContainer">, container: IContainer, item: Item, sorter?: ISorter<Item | undefined>) {
        api.returnValue = sorter?.getIndex(container.containedItems, item);
        api.cancelled = true;
    }```
#

this is the code responsible for sorting

sturdy tusk
#

All that change was was changing some checks in the default sorter to correctly handle undefined

#

So unrelated to pretty much everything

#

If you send me the mod I can help debug in a bit

orchid flower
#

maybe its freaking out because I basically use Number.MIN_SAFE_INTEGER + "expected inventory slot"

#

but that still should be rather normal number

#

how

#

if pinnedItemTypes is not available (I assume it means undefined) then how does it end up in that if

#

I think somehow data on my character is broken

sturdy tusk
#

I can repro without that

#

this is very weird

#

it seems inconsistent

orchid flower
#

seems like array fills empty ids with undefined (which I didn't know), but even with this it should be caught by pinnedItemTypes[item.type] !== undefined

sturdy tusk
#

The return value from onGetItemInsertIndexInContainer is so weird

#

I see it putting things at the start but it's returning indexes near the end of the array

#

I think this isn't only a mod bug

#

I think you just forcing the game to always generate a sorted insert index via onGetItemInsertIndexInContainer just makes it more obvious

orchid flower
#

I have to go to bed, its way past midnight here. If you manage to figure it out please tell me because from my point of view its literally doing something illegal

sturdy tusk
#

I think your sourcemap is incorrect btw

#

not sure how that happened

#

but i deleted the sourcemap line and was breakpointing in mod.js instead

orchid flower
#

I didn't even think it was possible

#

anyway, I have to go to bed, I should be back in ~8h

#

But changes that caused this weirdness have to be relatively recent since previously it worked just fine

errant loom
#

when the new build comes out, there will be some new memory stuff included for testing that crashing issue

orchid flower
#

What should I check when the issue occurs again?

orchid flower
sturdy tusk
#

I haven't had time to look into it, sorry

#

I might not be doing any Wayward dev for a few days

#

I'm fairly confident it's a base game issue though

#

I'll make sure it works again before Runekeeper release

orchid flower
#

Enjoy your break 🙂

orchid flower
#

I managed to figure out workaround for this that seems to be working fine, so its perfectly fine for this to wait

sturdy tusk
#

I have a feeling that it's actually broken for other sorts than recent in the base game, I think there's something wrong with how the sorting stuff gets an index internally

orchid flower
#

it could be

#

my duct tape style solution is this

private CountPinned(items: Item[]): number
    {
        let result = 0;
        for (let i = 0; i < items.length; i++) {
            if (this.GetPin(items[i]) !== 0)
                result++;
            else
                break;
        }
        return result
    }
@Inject(ItemManager, "getItemInsertIndexInContainer", InjectionPosition.Pre)
    public onGetItemInsertIndexInContainer(api: IInjectionApi<ItemManager, "getItemInsertIndexInContainer">, container: IContainer, item: Item, sorter?: ISorter<Item | undefined>) {
        const originalVal = api.originalMethod(...api.arguments);
        const pinnedCount = this.CountPinned(container.containedItems)

        api.cancelled = true;
        
        if (originalVal === undefined || pinnedCount < originalVal)
            api.returnValue = originalVal
        else 
            api.returnValue = pinnedCount
         // api.returnValue = sorter?.getIndex(container.containedItems, item);
            // api.cancelled = true;
    }```
#

GetPin returns 0 for all items that are not pinned

#

which means that pinned stuff will always be first no matter what

#

this might actually be faster than what I was doing earlier

orchid flower
#

I have Theurgy at 84%, ~360% evil fanaticism, sacrificed 1800 normal quality runes and didn't even get single relic rune

#

I think this needs serious fine-tuning

sturdy tusk
#

I don’t know if theurgy and fanaticism really have much effect for normal runes

#

You need to raise the tier one at a time

orchid flower
#

I dumped runes in randomly regardless of tier

sturdy tusk
#

That’s wasteful

#

It works out to be better if you only put in a single quality at a time

#

First all normals, then all superiors, then all remarkables, then all exceptionals

orchid flower
#

I got only about 230 superiors from all these normal runes

#

is that normal?

sturdy tusk
#

How did you manage get that many superiors? That should be at least one or two remarkables

orchid flower
#

there are few of them too

#

but still, 1 round of upgrades reduced my rune count so much

sturdy tusk
#

I need to reduce the altar weight capacity again so that players are less likely to just dump literally everything in

#

Drathy raised it during the old system

#

Should fit like 15-20 runes max without upgrading

orchid flower
#

but will that make sense? it will be just more of "Move all runes" -> "sacrifice" loops

#

currently if holds about 30 runes

sturdy tusk
#

I mean this will be alongside planned rebalancing of sacrifice and rune drop chances

#

Sacrifice thresholds getting super buffed and rune drop chances getting nerfed

#

Sacrificing should be a thing you do once in a while after collecting a bunch of runes

orchid flower
#

I hope that seeing better runes won't be almost impossible

#

because currently its bad

sturdy tusk
#

I want a player exclusively collecting and sacrificing runes rather than invoking them to end up with a relic rune every 50 ingame days or so

#

It is very intentional that it’s near impossible to get higher qualities. The effects when you get there are one-off crazy results. Remarkable and maybe an exceptional every once in a while should be the main qualities invoked

#

I want to buff sacrifice, but primarily because that many runes is very unwieldy and bad for performance, and because I want it to be curved a bit better

#

Also, runes of higher qualities being very time consuming to create keeps the door open for it to be a good loot/reward item

orchid flower
#

why do I sometimes get message that god is displeased?

sturdy tusk
#

That generally happens when you put in mixed qualities or not enough runes

#

It means you lost value

orchid flower
#

I reloaded backup to have another go at it.... not even one relic

#

I guess I will just have to wait

sturdy tusk
#

The rebalance might not happen till a Runekeeper minor update btw

#

I’m pretty firmly in bugfixing only mode

orchid flower
#

I still want relic chaos runes but thats likely not happening

#

I even have gear from before zone updates which has higher max % on fanaticism

sturdy tusk
#

Most likely you’re getting capped quite a bit

#

It doesn’t get better forever after all

#

Otherwise rune quality could go up forever by repeated sacrifices

orchid flower
#

thats likely true

#

actually? how do I raise theurgy? sacrificing all these 1800 normal runes didn't give me even 0.1%

sturdy tusk
#

It’s based on the total points the runes added up to

#

Most likely that was like 3600 points ish

#

And then because you’re at a high theurgy skill you gained less?

orchid flower
#

thats crazy cycle you have there. on one hand I need to sacrifice something thats not that easy to get but on the other hand chance of even meeting minimal quota to qualify is low because of first point

sturdy tusk
#

Sacrificing like 10 remarkables would be like 15000 points I think

orchid flower
#

with current zone system I would say players will sacrifice exclusively good runes and hoard other types until they max out theurgy

sturdy tusk
#

You can convert between rune types

orchid flower
#

how

sturdy tusk
#

Sacrificing produces runes for the deity most represented (quantity). Enemy deity runes are destroyed and not included. Non enemy runes are added up like normal and used to produce runes for the most represented deity

orchid flower
#

hmm

sturdy tusk
#

IE converting good runes to evil requires two sacrifices

#

Autocorrect is good to me today lol

orchid flower
#

I need to check how sacrificing code works and at what values theurgy and fanaticism are capped

#

oh, it seems like theurgy is not even checked when sacrificing runes

#

only thing that affects this is fanaticism

#

altar quyality also doesn't matter

orchid flower
#

Also, what is the reason for upgrading evil runes past superior? Chance of reaching exceptional is really low and it only spawns about 2-3 more enemies

#

Relic likely won't spawn 100 enemies so it would make more sense to execute normal runes or superior if for some reason we have too many normals

#

Only reason to make relic evil would be if we could craft creature idol from relic evil and some enemy meats and bones

junior valve
#

Unless it changed in past few days, the following is my understanding of current system
Fanaticism effective cap at default luck is 200% for normal quality sacrificed runes, 66.66% (2/3 *100%) for Superior, and about 250% (~261% for Blue going down toward 250% for higher qualities) for other qualities
Reaching max effective Fanaticism means you will always get the maximum possible points from normal quality runes, or on average same amount of points as you put in for other qualities, minus some tax of 1-3 points (function that processes points into output runes uses < comparator for thresholds, so it will always throw away 1 normal rune worth of points or less)
Altar has capacity of 10, runes can be refined down to 0.2, so it can hold max of 50 runes, or 105 if it has maxed Magnitude, which I believe is fine, enough for 1 quality tier upgrade, or 2 if using normal runes or near-maxed Magnitude
Theurgy gain from sacrifice depends on Rune quality, each quality tier is 1 point, and normal/None quality is 0, so Superior is 1, etc.
At maximum effective Fanaticism, 3000 normal runes are needed for 1 Relic
For getting higher quality runes, I recently discovered a way to get them en-masse
Before the update, certain creature could drop Runes, after the update it could not spawn, but later devs added a way for it to spawn again, ||so if you travel far enough you can guarantee Exceptional runes from them, and Relics from Aberrants (pls dont nerf)||

sturdy tusk
#

That is a pretty major balance issue for this currency

#

I don’t really have the time to address that

#

That’s just infinite hq runes

junior valve
#

The getting runes en-masse?
It requires 200% Theurgy, below 135% you get only 1 try per day, 167.5% for up to 3, and specific zone for max effectiveness
I didnt try the way, as I dont have the Theurgy yet, and few tries I did with normal and Superior runes did not yield any of the creatures

#

could reduce chance for the drops, or maybe prevent Rune (item) drops if the creature is still Enraged
how long does that last?

sturdy tusk
#

Forever

#

If you tame or pacify the creature I believe it goes away

junior valve
#

so use Good rune to pacify or get no Rune drops, which would limit daily harvest to whatever can fit in the Good rune range once per day

sturdy tusk
#

I believe this is the most efficient form of this cheese:
||1. Find a zone that has a small spawnable creature pool with tier at least 2, on an island far enough away that the creature loot is ridiculous (I hate that this is still a thing at all)
2. Sacrifice all runes (one quality at a time) to work towards a remarkable rune of evil
3. Wait until night
4. Invoke the remarkable evil rune
5. Kill any shadows that spawned, pretty much guaranteed to have more hq runes than before, maybe even higher qualities
6. Repeat every night||

#

You wait for remarkable bcuz much greater odds of actually starting the engine

junior valve
#

yeah, that is the process, for 1. ||what I found is that Tier 7+ Arid zones, if filled with correct terrain, can spawn nothing at night, except for Shadows when using the rune||

sturdy tusk
#

Amazing

#

Luck doesn’t even matter at that point since it repeatedly attempts the spawns

#

And loops through all looking for one spawnable

junior valve
#

||Peak would be with Abnormalizer, Exceptional rune would be 10-20 Shadows yielding same number of Exceptional or Relic runes of all types, and unless I missed something at 200% Theurgy delay for Runes of Evil reaches 0||

sturdy tusk
#

Oops that’s supposed to cap at 100%

#

That’s even more broken then lol

junior valve
#

I didnt check if it does, I dont have enough equipment for that, but if it gets capped what would going past 100% do? just some increase in chance to get Runes?

sturdy tusk
#

Not sure, the cooldown reduction was just a bonus thing I came up with so that it had an effect for chaos runes

#

I didn’t intend for it to be a main consideration

junior valve
#

I guess for balancing, select a configuration under which this way should yield on average 1 or 2 runes of all types per day, and reduce drop chances appropriately, and going beyond would not be considered for balancing

#

if cooldown get capped at 100% and using that Enraged limitation, daily cost would be 1 Rune of Good and 1 of Evil, for profit of 0-1 Runes of Good and Evil, and 1-2 Chaos

orchid flower
#

can shadows spawn on constructed floors?

junior valve
#

Shadows use TileGroup.Default for spawning, same as most normal creatures
Runes of Evil ||directly get getCreatureSet() from zone, then append Shadow creature to it at night in zones tier 2+, while the milestones affect random spawns (and CreatureIdol since it uses the same function) via function spawnFromZone( and removes spawnTile requirements from them||

orchid flower
#

in zones 2+... tilegroup default...

#

ash

#

on either ice cap or arid

sturdy tusk
# orchid flower

I tried to repro this from a prior report but wasn’t able to, do you have any idea what you were doing to cause it?

orchid flower
#

I might have an idea but let me confirm it

#

what is the range of evil rune?

sturdy tusk
#

The entire zone

orchid flower
#

now when I need them I dont have stuff to kill 😦

#

this happened when item list on the tile changed

#

in this case I am producing ash to dry ocean

#

and as dowels turn into ash this list gets longer and longer

orchid flower
#

some more bugged tiles

errant loom
#

all these ones are known and part of the same issue

orchid flower
#

Drathy since there was no auto build can you push one manually? I want to gather more data on that crash for you so you could solve it

errant loom
#

we cannot, the deploy machine is down

orchid flower
#

perform CPR 😉

tidal island
#

lmao rip

orchid flower
#

to use this toggle all actions shortcut do I really have to mouse over this button?

sturdy tusk
#

No?

#

It shows the keybinding on it

#

press left ctrl, then press left alt

#

you kind rebind it if sequence bindings are annoying

orchid flower
#

I tried to do it for like a minute

#

when I mouse over the button keybind works

#

but when I'm not I can't get it to work

#

I assume something else catches it

sturdy tusk
#

shouldn't, no

#

But moving the mouse resets the input sequence

orchid flower
#

nah, nothing.

sturdy tusk
#

Most likely what happened during that minute is you were pressing left alt and it was like "ok whats next" and then you pressed "left ctrl" and then it was like "that doesn't match anything, reset"

#

and then you did that on a loop

#

wait a moment after having pressed anything, including mouse clicks, then press left ctrl, then press left alt

#

and don't move the mouse during it, if you move the mouse more than a certain threshold that also resets sequence bindings

#

it's more obvious what's happening if you have the tooltip visible because then you can see the binding highlighting

orchid flower
#

I kind of know when actions slots detected ctrl because that small c on seconds action row light up

#

but when I press alt that c on second row dims

#

instead that tiny A on 4th row lights up

#

its like its going "ctrl? ok, you want second row. Alt? Fine, you don't want second row, you want 4th one" without even bothering to check that pause

sturdy tusk
#

that's not how it works

#

sequence bindings are handled separately from other bindings

#

if a sequence binding doesn't match other bindings try to match

orchid flower
#

that's what I observe.

#

when I mouse over that pause and press ctrl both that "left ctrl" and c symbol on second row light up

#

so I can tell when game "caught" my ctrl

#

and when I press alt that pause button popup disappears, c symbol on second row dims and all actions are paused

sturdy tusk
#

have you changed any bindings?

orchid flower
#

when I dont mouse over pause button and try to do that combination 4th row symbol light up

sturdy tusk
#

and where exactly are you putting your mouse

orchid flower
#

few. I added "E" to things like heal, gather liquid and other similar actions

#

nothing except that

sturdy tusk
#

oh i can repro this nvm

#

this is a new bug

#

i just used this feature like a week ago and it was working fine

orchid flower
#

thats fun

#

it works when my mouse is over inventory

#

even over my stats

#

even over chat window works

#

it works when mouse is over any UI element

#

but when its over world its not

sturdy tusk
#

potentially the walk to tile preview binding is eating the input now

orchid flower
#

is it possible to rebind it?

#

that pause all?

#

I have been looking for it in controls but I just can't find it

orchid flower
#

I have a weird feeling that right after load game is way more smooth than after few minutes of playing

orchid flower
#

Ooohhhh, you resurrected build machine. Finally I will have a chance to provide more data on that crash 134

orchid flower
#

is there a way to increase walk to tile max distance?

orchid flower
#

I noticed I get this in log, and its even happening with all my mods disabled

sturdy tusk
#

kinda annoying that that doesn't say what action it's trying to run

orchid flower
#

what is interesting it happens only on this island

#

when I traveled to swamp nearby this spam stopped

#

I have all my auto-use actions disabled

#

this messzage is generated every time either I move or world "ticks" (I play real time)

sturdy tusk
#

i pushed a tweak to that warning to make it actually log the action

#

will be in tonight's build

#

no time to actually look into this atm though

orchid flower
#

np

#

there is nothing I can do about this on my end right?

sturdy tusk
#

you technically could but it would be a lot of steps
would involve extracting the game's content and having the app use your extracted copy instead, that way you can run production.js through a code formatter and then actually be able to put breakpoints in it for debugging

orchid flower
#

Oh

#

I found the culprit

sturdy tusk
#

what was it?

orchid flower
#

when I removed this from last actions it stopped spamming my log

tidal island
#

So it's not just unavailable doodads

sturdy tusk
#

hmm i wonder why that's even getting to the internal action canuse check

orchid flower
#

sadly I have no idea

orchid flower
#

how do I protect item in code? simply doing item.protected = true is not working

#

at least not fully

sturdy tusk
#

You need to execute the ProtectItem action

orchid flower
#

is there any enum with magical properties? I cant find anything like that

sturdy tusk
#

MagicalPropertyType

#

It's only the supertypes though

#

subtypes are other enums

#

If you want to get the subtype enum for a supertype use magicalPropertyDescriptions[type].subTypeEnum

orchid flower
#

Its not available, I had to go through reflection to get it

#

can you make it available out of the box?

sturdy tusk
#

Yes but it will require any import of it to be changed to import MagicalPropertyType from "@wayward/game/game/magic/MagicalPropertyType" (ie no more {} around it)

#

So all those names are available in the console by default via some automagic stuff done by that Reflection module. It puts both modules in there by their filename, default exports by their filename, and all exports in all modules by their export names. In the case of MagicalPropertyType, there was a naming conflict between the MagicalPropertyType module, and the MagicalPropertyType export, so it didn't make either available

orchid flower
#
(protectInside = (container) =>
{
    for (let i = 0; i < container.containedItems.length; i++) {
    const item = container.containedItems[i];
    if (item?.containedItems)
        protectInside (item)
    if ((item.magic?.all().filter(x=>x.type === Reflection.export("MagicalPropertyType").Skill) ?? []).length > 0 ||
        item.quality === Quality.Relic)
            ProtectItem.execute(localPlayer,item,true)
    }
})(localPlayer)

this code will protect all items in your inventory that are either relic or have skill magical property

#

if anyone will need it in the future

orchid flower
#

where do I find large amounts of clay? In beacon I think arid caves was a place to go to, but what about now?

#

flying as ghost leads to spam like this

orchid flower
#

"go to tile" ignores dug dirt

orchid flower
#

There is definitely something off with performance the longer I play

#

these are from before reset. game was running for 1-2h

#

this is after ctrl+f5

#

I was just walking around rather small lake on swamp island

#

I dont know why, but it sems like that "Layerize" just ballooned for whatever reason

orchid flower
#
[61944:0923/114918.928:ERROR:CONSOLE(1)] "Request Autofill.setAddresses failed. {"code":-32601,"message":"'Autofill.setAddresses' wasn't found"}", source: devtools://devtools/bundled/core/protocol_client/protocol_client.js (1)
render-process-gone. reason: crashed. exit code: -2147483645

Nothing interesting in devtools console
Once again, game crashed while it was paused
@errant loom

junior valve
#

considering the increasing impact of Layerize over time, I am guessing game does not correctly delete tooltip etc. windows/elements, just hides them, and eventually it runs out of memory to track all of them, or something else fails
Last week I had a crash with positive Exit code when I was sorting stuff into containers for dropping into void with 10k worth, which icluded a checking a lot of tooltips, but no abnormal use of other systems

orchid flower
#

If you experience crashes launch game with console

#

there might be more details there

#

cmd.exe /k "cd /d "G:\SteamLibrary\steamapps\common\Wayward" & start wayward.exe"

#

I tried redirecting output to file but it didn't work

junior valve
#

I am on Win7 and launching game via command line or Steams errors out
[Window Title]
Y:\Bin\Steam\steamapps\common\Wayward\wayward.exe
[Content]
Y:\Bin\Steam\steamapps\common\Wayward\wayward.exe is not a valid Win32 application.
[OK]
I can launch it by running the exe via Explorer or Run command when using VxKex, which can suppress the error message/version check (likely from Electron), but it seems it cant when using command line

sturdy tusk
#

yeah our version of electron is past when they dropped support for win7

junior valve
#

VxKex is extended kernel or something that implements some Kernel functions that are in Win8/10/... but were not ported to Win7 too
This lets it run programs that need them
For other programs that I needed it for (Abiotic Factor : Unreal Engine?, SPT-Aki : Node.js), it worked fine, but it seems that Electron implemented/used that version check and it hard-blocks the program, and it was not used for the other programs
It seems that VxKex injects a .dll into explorer that disables/bypasses the version check, but I dont know how to inject it into cmd, and it seems it is also hardcoded to work only in explorer.exe

orchid flower
#

someone perform CPR on build machine, it needs help again

orchid flower
junior valve
#

there were no updates in #changelog so it is possible that no changes were made and no build was necessary

#

found a way to bypass the version check by editing the wayward.exe binary so the Minimum Subsystem version is 6.0 (Win 7, or maybe Vista) instead of 10.0 (Win 10)
Is this what it should print when launching it in command line?
Y:\Bin\Steam\steamapps\common\Wayward>
Setting breakpad minidump AppID = 379210
SteamInternal_SetMinidumpSteamID: Caching Steam ID: [steam user id] [API loaded no]

orchid flower
errant loom
#

i have observed a reproduceable memory leak - waiting on Space when he is back from his vacation to check into

#

ya, it looks like we are no longer able to modify the amount of RAM Electron reserves, so it just does its best guess and if it ever goes over that, it crashes

#

which is the problem you are seeing

orchid flower
#

4GB? what is this, 32bit app?

#

this is just sad

errant loom
#

it's technically a bit more than 4GB

#

but ya, that is annoying

#

might have to do some changes there

orchid flower
#

I get spam like this when I right click log in chest

orchid flower
#

My first out of memory since update. I'm not sure if it provides more data than earlier ones, but here you have it

orchid flower
#

Game is being weird here with modded item. On one save item has grouping which makes it work properly while on the other save freshly crafted item doesn't have that grouping

#

I even tried spawning new item with console but result is the same

orchid flower
#

No idea

#

Chiri will need to help me with this because I have no idea

tidal island
#

sounds like you're the one who needs help lol

orchid flower
#

what I need is sleep

orchid flower
#

thats true too

errant loom
#

there's some mod item issues right now for sure

orchid flower
#

thats... not ideal

orchid flower
#
Object.keys(BiomeType).filter(x=> !isNaN(x) && CreatureZoneDescriptions[x]).forEach(x =>
{
console.log(BiomeType[x],
JSON.stringify(
{
...Objects.keys(CreatureZoneDescriptions[x].tiers).reduce(
(a4, v4) => ({
...a4,
[v4]: Reflection.export("Arrays")
.range(WorldZ.Min, WorldZ.Max + 1)
.reduce(
(a, v) => ({
...a,
[WorldZ[v]]: CreatureZoneDescriptions[x].tiers[v4]
.get(v)
.reduce(
(a1, v1, i1) => ({
...a1,
[`Part${i1}`]: Objects.keys(v1).reduce(
(a2, v2, i2) => ({
...a2,
[PartOfDay[v2]]: v1[v2].map(
(x2) =>
`\{ ${x2
.map((x3) =>
Translation.get(Dictionary.Creature, x3)
)
.join(", ")} \}`
),
}),
{}
),
}),
{}
),
}),
{}
),
}),
{}
),
},
null,
4
).replace(/\n?[ \]\}\{\[,\n]*\n?$/gim, "")
)
})

This weird monster will tell you what spawns where at what time. It basically prints more human readable version of the data

orchid flower
#

#changelog message
this didn't work

#

in this case I believe heart should disappear right?

#

in this case it should definitely disappear

#

and now my doggo forgot to display his heart

#

it seems that dropping/picking up items causes heart to "update"

orchid flower
#

To elaborate a bit more- it seems that the heart is not properly handled at the edge of fov

#

When a creature disappears the heart should also go etc

errant loom
#

will check

orchid flower
#

on the topic of fov - should doodads disappear when out of it? Armor stands and altars do for some reason

#

those 2 are the only ones that disappear which is weird

orchid flower
#

again this weird thing happened - item highlight freaked out and there is no way to fix it besides f5

errant loom
#

this is known but there's no way to fix it without knowing how to reproduce

orchid flower
#

I will try to remember what I did

#

what recipe is it showing though? needle and single cordage?

orchid flower
#

Chiri, what did you mean by #changelog message ? Dev tools can break my save?

sturdy tusk
#

The "Developer Mode" checkbox

#

It doesn't break saves

#

It just makes performance worse (due to more logging) and enables more places erroring out rather than being ignored

#

Because it's useful for our testing

orchid flower
#

darn, now I wish we could get dev tools without all this extras from dev mode

#

oh, we actually can

sturdy tusk
#

I made sure all of the useful stuff was outside of dev mode yeah

#

Moved a couple more buttons out with the changes today in fact

#

I also made the version string appear in the warning/orange colour when dev mode is enabled so it’s very easy for both the user and us to tell if a screenshot is a dev mode screenshot

orchid flower
#

there is something off with gathering liquids in containers with auto-use actions

#

it looks like auto use gather liquid action enables itself 0.5-1 second after player moves

#

interestingly, it only applies to actions that have item specified. generic gather liquid works just fine

orchid flower
#

it seems that this issue is not only with gather liquid action but with plant too

mystic heron
#

I made a new world on the Development Branch and this happened after a few bugs happened.

#

I had a few bugs before it happened.

#

Now, I will look for those logs.

#

Game logs.

#

I think this is the right one. Let me know if this is not the right logs.

#

As in, not the right log file.

sturdy tusk
#

The last line in that log file is august 20th, so no, there should be another

mystic heron
#

There are not any other logs in the folder. So it must be one of those two, then?

sturdy tusk
#

yep the error's in that one

#

i added it to our bug tracker

mystic heron
mystic heron
#

I may as well put the world folder here.

#

If I can find it.