#Runekeeper Dev Branch Megathread
1 messages · Page 6 of 1
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
Is the duplicates a new issue?
Specifically, do you know if it started after the build containing this: #changelog message
let me enable magicology and check runic staff
I didn't touch that code since I created it
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?
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
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
"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"
I will have to play with those tomorrow
for you it will probably be your evening though
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
🙂
Was there other things that aren't working?
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))
),```
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
at least I couldn't manage to get any breakpoints catch anything in this area
time to sleep
this time for real 🙂
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
how can I register my actions but make them only appear in submenu?
how is that better than my current solution of registering Dispel UA for each magical property "id" in item?
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
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”
but can you actually see someone using these in action slots?
then I would like to do that instead
Huh, alright
no matter how you try to use it, you won't be mass dispelling magical properties
Is it that expensive?
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
Fair enough
it could make sense if I instead turned it into opposite of upgrading
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
lower enchant power with each use and when it's at the lowest possible value dispel it
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
I think you gave me enough pointers to pull it off. I found something similar in QuickStack mod
slottable and displayLevel
did you deploy build?
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
thanks
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
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
Any errors in DevTools ?
no
its 30 mb with node_modules, it should take like 10 seconds
ah, then it should be <5 sec
200 kb
it should be instant
game still can't recognize icons for ItemTypeExtra
What path is it trying to load from
G:/SteamLibrary/steamapps/common/Wayward/resources/app.asar/static/image/item/modmagicologyrunicstaffofchaos.png
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
Lmao how did you manage that?
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
Alright, I'm finally home, just checked and it changes nothing performance-wise, it seems 😥
gotcha, will look into other options soon
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?
it wouldn't be trust if you knew for sure /j
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
Ah, thank you, I kinda expected that this will be the answer :3
can't find a way to replicate that issue by the way
You mean the taming bug?
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
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
thanks, will get Space to look at it
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)
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
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?
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
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?
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
I was wondering if it would be possible to essentially return out of all of it if crafting UI is not opened
It would also need to know that there's no craft action slots
We could probably do that but probably not for Runekeeper
return out of them too - no crafting allowed
would it be feasible to do it as a mod?
probably actually
I know its not proper solution, but small steps at a time
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
it would have to be that inject pre
yep
You would also only want to do this if this isn't multiplayer
Because I can't guarantee it wouldn't cause desyncs
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
@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
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?
Download Trace-20240914T115841.json for free from ufile.io instantly, no signup required and no popup ads
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
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?
It really needs to be cached
It's not like it's causing this weirdness, it just allows me to push things to extreme
You can make negative weights in the normal game?
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
So Drathy hasn’t fixed this? Or did he just not add something to fix old ones?
Yeah I just can’t replicate this exactly without the same mod because everything pops out of the chests
But back on the topic- you can reach a similar state if you just run through large tree farm with actions to dismantle everything
I’ll look into the storing magic after I look into why this is hurting perf
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
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
If I created best storing chests I probably could fit 18000 cordage in my inventory even without that mod
Give me few mins and I will upload it again
I would just use a separate number for storing calculations
Or just sanity cap it at 50% or so
Its this mod
https://ufile.io/2qc2m123 and here is my save
sorry, this save has inventory opened
with the mod it loads relatively fast
https://ufile.io/c3vi6lxh this save has inventory closed
Thank you! Will look tmrw, have been sleeping earlier recently bcuz a noisy bird keeps waking me up at 7am lol
I have a feeling that Huntsman milestone is not working
What's this little yellow thing at the left of the "fire" icon?
this is what it looks like for cold
it's that icon also being broken on your interface scale
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
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?
yes it's specific sizes so that the images appear correctly
It's just that while 1.25 is comfortable for my eyes, it breaks the UI by cutting some stuff out.
Got it, thank you!
Well, it's not that it's broken, it's just doesn't fit on the screen, and I have to scroll in directions to see all what is written in some places 🙂 As for the scaling in general, it's okay 🙂
examples are still appreciated in cases like that, i can maybe improve things a bit
Got it :3
I might send some things if I'll see them :3
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
Build didn't pass
does altar quality has any impact on sacrifice success rate? if not then it should
it could be like +10% on masterwork altar
Fixed this
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:
- its result wasn't cached like the rest of the item finder stuff
- it was calling
postfilteron EVERY SINGLE ITEM AVAILBLE, even though it only actually would end up using the first one that passed thepostfiltertest
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
basically lots of items, and only rather small subset of players were running with crazy amount of items in their pockets
yep
can you check if it works the same after entering boat?
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
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
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
so it still is like this?
🙂
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
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
I assume picking up items will cause this right?
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
it would be good if that calculation occurred when item that is being picked up etc was matching action slot etc
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
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"
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
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
then if the best item is broken or becomes unusable it has to recalculate from scratch to find the new best
still less math to do on average
should be about the same?
how often do you break tool vs how often do you pick random item that matches some action slot?
oh that's what you meant
and shifting indexes in table that can possibly have few hundred or way more items and putting something at index 2 cant be cheap
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
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
33.5 ms to put an item at the start of an array 10,000,000 items long
ok, thats fast
oh weird it's faster after doing it once too
i tried adding 8 more things simultaneously and it only took 6ms
can you do that on smaller table, like 1000 elements but repeat that 500 times
i'm actually kinda impressed, i wonder how js arrays work internally
that is mamzing performance actually
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
I wonder how often it reallocates memory
insertion might be worse
i'll try that
that takes half the time
i even randomised where it inserted each item
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
oh, this one scales up (maybe exponentially?) with array size
i got 1.5s doing the exact same thing on the 10mil array
I don't think we will use that many items
yeah me neither
though.... challenge accepted 🙂
lmfao
I have to start collecting and refining cordage
anyway, i won't be able to refactor this algorithm to do that sort value stuff until later
what about only comparing new items with best when best exists and doing full math when best disappears?
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
it should be way easier than your full fledged solution
and still give us considerable value
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
so its basically the question of development time vs value generated right now
because later it will be scrapped
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
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
love when technology we rely on gets buggier as it matures
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
almost 2h and still stable
@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
Beacon is still running just fine but dev 20 mins after I launched it when I right clicked bottle of water
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
ok
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.
It might be the increased crafting difficulty resulting in a worse roll
I dunno, it wasn't the case before the dev version 🤔 I mean, come on, am I so unlucky that everytime I get a bad roll? 😅
it wasn't broken before?
I have been having durability issues with crafter but I assumed it was because of crafting difficulty
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!
Don't think so 🤔
Only the bone clay saves me and my stuff, ngl 😄 It usually gives a lot of health.
crafter milestone is generally referred to as cursed milestone
it gives you basically nothing while making everything super hard
Oh, yeah, glue, sorry, I'm tired today 😅
is this a window into a language other than english
I love finding out stuff about languages other than english
Dammit 🥲
english is the worst language ever
Sometimes I think so too, ngl 😄
Maybe, but it haven't made everything crafted so fragile before, it contradicts with its description! 😄
I recommend waiting until the devs look into this because it does sound like something's gone wrong with the milestone
Yeah, I think so too, cuz I feel like something is really wrong with this milestone 🙂 At first I thought that maybe I've got something wrong, but now after I tried playing without it, I'm certain that it's bugged or something 😄
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?
Tbh, I kinda got used to it, so I feel like it's okay for now 🙂 I like the increased crafting difficulty, I just want the normal durability for my stuff :3
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
will check!
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
// 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
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
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
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
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
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
there should be a kraken corpse 1 tile down and right, the action slot should be shift+8 or around there
might be an issue when there is only 1 item of allowed type in protected container
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?
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
hmmm ok thanks I'll try that see if i can get one.
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
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
It shouldn’t be, maybe I messed up
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
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
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
If you want to ignore time of day you’ll need to write your own function
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
all our current functions that work with what's spawnable
you should be able to stitch together something for this
thanks 🙂
I am working on small info dump for my runic staff
consumes 1.5 more mana than executing relic power
And back to adding more layers - I wonder how troposphere will work with zones
Troposphere fully supports creature zones
Zone definitions: https://github.com/WaywardGame/troposphere/blob/9b314a3/src/Troposphere.ts#L79-L176
Injecting the zone definitions into all island biome types: https://github.com/WaywardGame/troposphere/blob/9b314a3/src/Troposphere.ts#L733-L739
So it's basically the 3rd layer of the map?
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
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
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
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.
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
you. what
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
hmm that would mean we need to get the whole list of what can spawn before and after like you were doing
this was actually broken without considering dpi! it was a new iconography system not correctly supporting the "interface scale" slider
i changed one thing and it fixed every single one of your reported bugs because they all used the same thing
oo
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!
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
I just don't understand why is it that stable branch is way more performance friendly, like, it really is smooth like butter! 🥲
Out of curiosity what kind of gpu do you have?
Nvidia Geforce GTX 1060 🙂 It's old, but still revelant IMO.
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
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 🙂
We have no idea
We might have to downgrade electron if we don’t find something
Not exactly a workable solution longterm though
Hope you will find a good solution that will suit everybody 🥺 Thank you for your hard work!
could you give us runekeeper with beacon's electron for testing?
because I assume its more complex than just replacing app.asar
going backwards corrupts save data completely
its not a problem if we export it
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
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
Electron 22.3.14
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
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
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
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
if i had to guess it's something related to what we are doing with launch options: https://steamcommunity.com/sharedfiles/filedetails/?id=798938225
there's maybe some renderer/gpu changes that are clashing with what we have set
are your frame drop timelines the same across all?
it would be wild if these were also to blame for my crashes
I’ll check in a couple hours
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
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
weird
That's not something I get on my end
Oh wait you reduced cpu
maybe i'll try that
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
The game is completely unplayable for me on 6x slowdown
ya, but it's just to see if it can trigger the same skips we are seeing hah
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
interesting
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
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
I have a feeling that game will be very smooth after you find fix for frame dropping
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
Is it possible to tell the game to reload js file from the drive and execute it as if it was a function?
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
I love weird bugs
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?
spiked cleats
Someone else asked that today
All boots that aren’t leather or scale prevent slipping
You’re just wearing slippery ones
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
i don't understand how, but the performance is worse now
actually, i think the FPS meter is bugged
Item highlight broke. It just refuses to exit fabric crafting highlight
oh, I can highlight ingredients for both fabric and wood floor
@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
interesting
from what I see wayward is keeping itself under 5gb
do you have the dev tools open?
not yet
no, i meant when it crashed
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
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?
that's fine for now
will look into some things
i'm interested in what your performance.memory looks like run via console
how do I launch that? is that parameter?
just in console in dev tools
so just record performance trace?
thanks
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
I think that "Open Folder" Button doesn't work.
freezing fresh water & deep fresh water
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
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
can you not do collect liquid from a container in your inventory?
or does that have the risk of creating a hole in the dirt?
I can collect snow?
I didn't even notice
should eat stat boosts be in this order? I feel like its in reverse
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
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
And when you add an item and it goes in the wrong spot, does closing the container and reopening it change the position?
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
I think most likely that particular change you mentioned didn’t break this
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
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
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
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
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
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
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
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
when the new build comes out, there will be some new memory stuff included for testing that crashing issue
I will be launching the game in less than 1h so if you launch build soon you will get results earlier.
What should I check when the issue occurs again?
Have you figured something out? Is the issue in my mod or is there something off with that getItemInsertIndexInContainer?
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
Enjoy your break 🙂
I managed to figure out workaround for this that seems to be working fine, so its perfectly fine for this to wait
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
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
I have Theurgy at 84%, ~360%
fanaticism, sacrificed 1800 normal quality runes and didn't even get single relic rune
I think this needs serious fine-tuning
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
I dumped runes in randomly regardless of tier
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
How did you manage get that many superiors? That should be at least one or two remarkables
there are few of them too
but still, 1 round of upgrades reduced my rune count so much
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
but will that make sense? it will be just more of "Move all runes" -> "sacrifice" loops
currently if holds about 30 runes
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
I hope that seeing better runes won't be almost impossible
because currently its bad
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
why do I sometimes get message that god is displeased?
That generally happens when you put in mixed qualities or not enough runes
It means you lost value
I reloaded backup to have another go at it.... not even one relic
I guess I will just have to wait
The rebalance might not happen till a Runekeeper minor update btw
I’m pretty firmly in bugfixing only mode
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
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
thats likely true
actually? how do I raise theurgy? sacrificing all these 1800 normal runes didn't give me even 0.1%
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?
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
Sacrificing like 10 remarkables would be like 15000 points I think
with current zone system I would say players will sacrifice exclusively
runes and hoard other types until they max out theurgy
You can convert between rune types
how
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
hmm
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
Also, what is the reason for upgrading
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
would be if we could craft creature idol from relic
and some enemy meats and bones
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)||
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
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?
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
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 
3. Wait until night
4. Invoke the remarkable
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
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||
Amazing
Luck doesn’t even matter at that point since it repeatedly attempts the spawns
And loops through all looking for one spawnable
||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||
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?
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
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
um... will that work with destroyer of magi and reaper of souls?
can shadows spawn on constructed floors?
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||
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?
The entire zone
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
some more bugged tiles
all these ones are known and part of the same issue
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
we cannot, the deploy machine is down
perform CPR 😉
lmao rip
to use this toggle all actions shortcut do I really have to mouse over this button?
No?
It shows the keybinding on it
press left ctrl, then press left alt
you kind rebind it if sequence bindings are annoying
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
nah, nothing.
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
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
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
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
have you changed any bindings?
when I dont mouse over pause button and try to do that combination 4th row symbol light up
and where exactly are you putting your mouse
few. I added "E" to things like heal, gather liquid and other similar actions
nothing except that
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
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
potentially the walk to tile preview binding is eating the input now
is it possible to rebind it?
that pause all?
I have been looking for it in controls but I just can't find it
I have a weird feeling that right after load game is way more smooth than after few minutes of playing
Ooohhhh, you resurrected build machine. Finally I will have a chance to provide more data on that crash 134
is there a way to increase walk to tile max distance?
kinda annoying that that doesn't say what action it's trying to run
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)
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
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
what was it?
So it's not just unavailable doodads
hmm i wonder why that's even getting to the internal action canuse check
sadly I have no idea
how do I protect item in code? simply doing item.protected = true is not working
at least not fully
You need to execute the ProtectItem action
is there any enum with magical properties? I cant find anything like that
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
Its not available, I had to go through reflection to get it
can you make it available out of the box?
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
(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
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
"go to tile" ignores dug dirt
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
[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
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
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
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
yeah our version of electron is past when they dropped support for win7
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
someone perform CPR on build machine, it needs help again
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]
yes. and when game crashes you will get some more info (hopefully)
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
4GB? what is this, 32bit app?
Electron 21 and later will have the V8 Memory Cage enabled, with implications for some native modules.
this is just sad
it's technically a bit more than 4GB
but ya, that is annoying
might have to do some changes there
I get spam like this when I right click log in chest
My first out of memory since update. I'm not sure if it provides more data than earlier ones, but here you have it
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
Version issue maybe?
sounds like you're the one who needs help lol
what I need is sleep
thats true too
there's some mod item issues right now for sure
thats... not ideal
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
#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"
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
will check
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
again this weird thing happened - item highlight freaked out and there is no way to fix it besides f5
this is known but there's no way to fix it without knowing how to reproduce
I will try to remember what I did
what recipe is it showing though? needle and single cordage?
Chiri, what did you mean by #changelog message ? Dev tools can break my save?
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
darn, now I wish we could get dev tools without all this extras from dev mode
oh, we actually can
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
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
it seems that this issue is not only with gather liquid action but with plant too
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.
The last line in that log file is august 20th, so no, there should be another
Is it this one, then?
There are not any other logs in the folder. So it must be one of those two, then?
I did not know it was a new bug.
The world I was in loads, then crashes immediately. Redirecting me to this message.
I may as well put the world folder here.
If I can find it.
Is this the world file?