Today we wanted to connect with everyone regarding the recent gold exploit, as well as exploits in general within the online environment. We want to talk a bit about what we’re doing in regards to these issues, and what our plans for the future are.
We take exploits within Last Epoch very seriously and ensure that any time an exploit comes up, we give it our full and immediate attention. We strictly enforce our Terms of Use when it comes to exploits and RMT (Real-Money Trading), and as such, one can expect that abusing such exploits or engaging in RMT, both buying and selling, will result in a permanent account ban.
Since 1.0 has launched, we have been aware of two exploits. The first allowed duplication of items through the bazaar. We were made aware of this exploit three days after its first discovery, and deployed a fix for it the same day. The second exploit we became aware of was the recent gold exploit, which we created and deployed a fix for in less than 24 hours of being made aware of the exploit.
Current Actions
In response to the gold exploit, we have reviewed gold activity on an account level, identifying, and banning those accounts which have been participating in illegitimate gold generation. We don’t want to speak too much to how this was tracked, as it could only really serve to provide bad actors information to try to avoid detection. With this, we are aware of the concerns of legitimate accounts being falsely flagged. We are quite confident in our tracking not falsely flagging accounts, though as always you can appeal any moderation action through http://support.lastepoch.com.
We have also banned accounts with duplicated items from the first exploit, and we have been and are continuing to process and ban all accounts linked to RMT services (both buying and selling). These regular account bans for RMT involvement are actively removing significant amounts of gold from the economy, which we expect will help bring down inflation.
We are aware of the inflation which has occurred within Merchant’s Guild, and are discussing methods to deflate the economy again. We expect the removal of much of this gold through the bans to both those who exploited the gold bug, as well as RMT involved accounts, will help quite a bit, though we are also discussing additional actions. At this point, we’re not implementing any actions which we’re able to talk about, however if we do plan to take any actions which directly effect players we will communicate those actions.
Moving Forward
We want to make sure we’re not only reacting to exploits, and are instead working on proactive measures to prevent exploits in the first place. We’re making sure to act both on a technical level and on a user level. Actions we’re taking on a technical level are much harder to discuss, as saying what we would be doing is just providing information to bad actors on how to try to exploit after. However, we want to strongly state that we are not ignoring these exploits occurring and are taking active measures to combat them.
Lightless Arbor and Runes of Creation generating legitimate duplicate items has also been contributing to the perception of item dupes. Some of this comes from awareness regarding that these legitimate duplicates are possible, as well as to what extent. It may be surprising to know that Lightless Arbor’s Vaults of Uncertain Fates can actually produce up to 12 duplicates of the exact same item. These legitimate duplications can produce some very suspicious-looking listings on the Bazaar. So when we talk about changes on a user level, what we mean is that we are working on not only preventing these exploits, but also this kind of confusion being generated by user experience. As our first action to help address this, we will be introducing mirrored item card graphics to help visually represent when an item is a legitimate duplicate (on duplicated items, the 2D art for the item will be mirrored / flipped).
We’ve also found, in general, the Merchant’s Guild centralizing of gold leads to a fair amount of inflation all by itself, and as such, are looking into and discussing inflation control methods such as implementing a Gold Tax on transactions in 1.1. We don’t want to implement this kind of change during the current cycle as it would be a fairly fundamental change to the Bazaar and Merchant’s Guild. We’ll have more information concerning inflation counters, Tax or other, as we get closer to 1.1.
Closing
We don’t think it’s a very controversial statement to say that abusing an exploit, ruining the game for all players is not acceptable, and that doing so should result in a ban. We also acknowledge this isn’t just on bad actors, but it’s also our responsibility to do everything we can to prevent these exploits from being possible in the first place.
With that said, we want to be clear in stating that we acknowledge the feedback from the community concerning allowing these exploits to have slipped through, and want to make sure we state that we are taking these events very seriously. We are actively investing in both addressing, and preventing these exploits, with no efforts spared, or shirking of the issues.
In today's Hotfix, we are fixing a list of things for you!
Changes
Improvements have been made to Monolith visuals and performance along with several bug fixes
Fixed a bug where some channeled movement skills such as Rampage could end abruptly in the Alpine Halls monolith echo
Fixed issues with trees obscuring your view in the Hidden Oasis monolith echo
Added a fix that will warn players when files must be verified.
Fixed Loot filter toggle "X" sensitivity
Fixed bugs where the following skills' damage areas were not scaling with area modifiers from their trees or from items
Abyssal Echoes
Dancing Strikes (not all parts of the combo were affected by this bug)
Erasing Strike (just the initial hit, not the void rifts)
Forge Strike
Healing Hands
Necrotic Mortar (from Summoned Skeletal Mages)
Reap (from Reaper Form)
Fixed Passive and Skill Tree localization issues
Updated visuals for Announcement banners
Updated Unique Reward icon in Monoliths from Ring to a generic icon
Added missing name to Graveyard
Bug Fixes
Skills & Passives
Fixed a bug where the player's Falcon could fail to be unsummoned after the player has died
Fixed a bug where Warpath would cause players to become stuck in place and unable to move
Fixed a bug where Drain Life with Blood Pact and Ghostflame with Arteries of Malice would stop channeling when at very low current health
Fixed a bug where Healing Hands was still scaling with cast speed instead of melee attack speed when Seraph Blade was allocated
Fixed a bug where Gathering Storm was still scaling with melee attack speed instead of cast speed when wielding a staff and Lagonian Diplomacy was allocated
Fixed a bug where Thunder Tempests from Tempest Strike's Cloudburst Conduit could not hit enemies
Fixed a bug where Added Spell Damage Affix with Tempest Strike did not work
The grace period for your minions now ends when your own grace period ends
Fixed a bug where attempts to cast minion-targeted abilities like Dread Shade on minions that were in grace period would always fail
Fixed a bug where stationary minions would never leave grace period, resulting in them never attacking
UI
Fixed a bug where items sold in Online mode were displaying original price in the "Buy Back" tab
Fixed a bug preventing Defensive Conversions from displaying in the character sheet online
Other
Fixed a bug where Soul Embers would persist after the dungeon was completed
Fixed a bug causing Void Despair to be invisible
Fixed an error when leaving Offline mode
Fixed a bug where, players spawning into a new location would reveal part of the map too soon.
In today’s Hotfix, we are reverting the change to the cost of Despair Glyph Prophecies.
With this, we wanted to talk a bit about why this change made it into the last patch, similar changes, and a bit more about our specific reasoning behind them.
Glyph of Despair Prophecies
This change (favor cost for despair glyphs) didn’t have anything to do with Merchant's Guild (MG) - at least, we weren’t aware of a significant issue being caused by MG players swapping to ‘abuse’ this. We believe MG already has a very good pathway to Despair Glyphs with Vault of Uncertain Fates, so wouldn’t have been benefiting from this prophecy by swapping.
This was actually something we had decided before 1.0, that the favor cost was too low for this reward along with other adjustments in a late pass. However with the post-launch changes/fixes, this was as soon as it made its way through the pipeline with other priority fixes pushing their way ahead of it. So this was purely in regards to its own balance within Circle of Fortune (CoF). One of the discussions this has started internally is regarding review of these delayed adjustments.
Our previous pipeline didn’t include design looking at the final patches when they went out, so unfortunately we missed this change and re-evaluating it. We have adjusted our pipeline to try to catch delayed changes so we can be more mindful of them and consider if they should go out, or be delayed to the next cycle.
TLDR: The change was made before 1.0, got stuffed in the pipeline, and just finally got out without further design review on timing. We’ll be keeping a better eye out for delayed changes like this.
Arena Key Sell Prices
With the Key value nerf, the impetus for it was as we had stated, that it was being leveraged by MG players with swapping factions. However, this was a change we had planned for some time, and it was really just the final push needed to prioritize the change. With the key values, originally they had a higher value on them so it gave them some value for players who didn’t have any use or interest in them (never played arena).
Keys were never intended to be a source of gold farming, which is something which crept up over time with them being easier to target in the Monolith. With the interactions in CoF, it was the straw which broke the camel’s back, so to say. We definitely agree we did not sufficiently communicate reasoning behind this change, and that’s on us creating that misunderstanding. We’ll be making an effort to include bigger picture reasons behind changes such as this, rather than the immediate reason, as we had.
TLDR: Arena Keys were never meant to be a method to farm gold, and it had reached a point of prominence that even MG players had begun to feel the need to swap to CoF to leverage it.
Mid-cycle Changes
In regards to mid cycle changes, we had approved these changes as they don’t impact moment to moment gameplay, and won’t suddenly cause a build to not be able to clear a certain difficulty of content it was able to previously. The survey we had previously gone through was about those kind of build impacting changes, rather than general systems. We should also mention this is our guiding star, not our railroad. In specific scenarios we may decide another route is better, such as this Despair Glyph change not being enacted during this cycle. For these kinds of changes, we will use our best judgment, and will always be receptive to hearing feedback on them.
We have also seen some feedback regarding the survey not covering bug fixes which result in buffs. The reason for this is that we have always had the intention to follow through with bug fixes that result in buffs mid-cycle, and did not feel that was controversial to be surveyed. We won’t be holding back bug-fixes that result in buffs.
TLDR: Our intentions with mid-cycle changes from the survey is to avoid nerfs to the power level of characters, or moment to moment gameplay. We will still do changes that are buffs. These are guides, not rules - we will exercise discretion.
Thank you
As always, thank you voicing your feedback to us - it is sparking discussions about the timing of these changes, as well as communication regarding them. We hope we can clear up that both these changes were things we had been discussing for some time prior and were not just due to abuse, and help to put to rest some of the conflict we’re seeing.
CHANGES
Reverted Favor cost increase for Despair Glyph Prophecies
Please Note that for approximately three hours after the patch goes live it is still possible to connect to an old server which will charge the old costs. Please wait until after this timeframe before visiting the Observatory for specifically purchasing Despair Glyph Prophecies
Today’s blog is a little different from our usual fare. As most of you know, Last Epoch launched on February 21, and the reception has been amazing. In the first week after launch, over 1.4 million of you logged in to play Last Epoch. At our peak, we had just under 265,000 players all roaming Eterra simultaneously. That’s good enough for the 39th highest all-time concurrent player count recorded on Steam, and we’re humbled by your support and enthusiasm for the game.
There’s plenty of cause for celebration, but let’s not ignore the obvious: Last Epoch’s launch was pretty rough for the majority of you who play online. Your patience and positivity have been amazing, but it was obviously not the launch experience that you or we had hoped for.
Now that the initial launch woes are behind us, it’s time to reflect on the experience. What happened? We put a strong emphasis on testing our servers and infrastructure ahead of time, so what did we get wrong? Last Epoch’s backend team is here to give you a bit of a recap of what went on during the launch.
How Our Game Works
Let’s begin with a quick explanation of how our game works when played online. When you boot up Last Epoch and enter the game, what you see as a player is relatively straightforward; first you log in, then you select your character, and then you join a game server. Behind the scenes, though, what you’ve just done is communicate with and move through half a dozen online services. These services log you in, provide you with game data, and give you a server to connect to so you can play the game. You connect to this game server, but then the server itself goes out and talks to even more services to authenticate you, load your character data, and check things like your party membership.
These supporting services are the “backend” of our game, and without them our game doesn’t work. Some services are more important than others, but as a general rule, most services are required for the game to function. The good news is these services are all pretty resilient. Behind the scenes, each service is not one program but many copies of the same program. If one of the copies breaks down, the other copies keep working. Crucially, if a service is overloaded, we can fix that by just deploying more copies of the program. If our services are designed properly, we can handle any number of players; all we need to do is throw more copies at the problem.
(This design applies to our game servers, too; Last Epoch has never once “run out” of game servers for players because they’re all interchangeable, and we can create as many new ones as we need. The closest we ever come to running out of servers is when we get a spike in players and need to wait a short amount of time for extra ones to boot up).
Preparing For Launch
The “designing our services properly” bit is the hard part. For some of our services, it’s very challenging to design them in a way that actually lets us scale just by throwing more copies at the problem. If you were around for the launch of patch 0.9.0, our first multiplayer release, you saw our game go down as soon as we crossed 40,000 players. Why? The service that matches players to servers had a design flaw where it started slowing down when there were many servers available. Once about 40,000 players joined servers, the performance of the matcher got so bad that it didn’t matter how many copies we threw at the problem - every copy would crash under the strain.
The backend team spent much of the time between 0.9.0 and 1.0.0 hunting down and fixing these sorts of design flaws. Some flaws could be fixed easily, others required entirely new services to handle our players’ data in a way that could actually scale. We were given a blank check to do whatever was needed to support our launch, so the only obstacle was time.
By the week before launch, we seemed to be in a reasonably comfortable spot. Everything was built, and we’d performed multiple rounds of load testing on our entire backend to ensure it could handle the volume of requests we expected at launch. The results were promising, and we hadn’t pulled any punches on the testing either. We were as ready as we were ever going to be for launch.
The Morning Of Launch
For something like a game launch, “readiness” is mostly about having a plan. You can have confidence that you’ve tested and prepared, you can have confidence that you know how your services work, but you can’t have confidence that nothing will go wrong. Instead, you plan for what to do if something unanticipated happens.
On the morning of launch day, we went to scale up our server matching service to the numbers we used in our tests, and to our great surprise, it refused to spin up more than half the copies we asked for. Server matching is a critical service, and in our testing, it needed a high number of copies to handle all the players we expected, so getting stuck at half capacity was a serious problem.
This wasn’t even the only pre-launch hiccup. In a case of unfortunate timing, our service host had an incident the night before - still ongoing at launch time - that affected us in a way that prevented us from deploying changes to any of our backend services using the tools we had relied on for months. Our ability to fix our services was killed at the same time one of our services needed fixing.
We had workarounds for these problems, but they were not quick fixes. We were going to need to break apart our deployment tools and move our services around manually, but this was not something we could sneak in before the doors opened to all our players. Minutes before launch, we estimated that we could handle maybe 120,000 - 150,000 players before things started to fail, and we crossed our fingers that we’d be able to resolve our issues before the player count crept too high.
Well, you know how that went.
The Next 5 Days
What unfolded over the next five days was a blur of emergency fixes and risk management. As it so happened, our first two pre-launch problems were only the tip of the iceberg.
In software, you sometimes run into a problem called “cascading failure.” When different parts of a software system rely on each other, an error in one part can cause errors in all the other parts as well. This can make it look like the entire system is failing even though only one part actually is. Finding the root cause of the failure is very difficult when everything is failing all at once.
The server matcher problem had caused a cascading failure in our systems. When players fail to connect to a server, they usually just try again, meaning our struggling server matcher had to deal with 2-5x the number of requests it would normally need to deal with. In many cases, players would get through the first half of server matching but would fail the second half, meaning servers would bring themselves online and then shut down again because a player never connected. Servers booting up and shutting down put pressure on our other services, and so some of those also started to fail.
When we fixed the server matcher, some other services continued to fail because they had trouble recovering from the chaos. Our deployment tools still required attention, so fixing these other services was a slow and manual process. To clear up the backlog, we needed to scale some of our services way past what would have been needed had the game been working smoothly. This brought with it new challenges since cloud services have some built-in soft caps that we would never have hit under normal circumstances, and working around those caps took time and, in some cases, code changes. We identified and cleared away many of these caps before launch, but we hit new ones as we scrambled to rearrange our backend.
You may be wondering, if the problem was recovering from too many players, why did we not simply have some downtime, or at least turn on player queues, to alleviate the pressure? The answer is that we did, but the problems ran deeper than the server matcher. At various points during the launch, we brought down our services, and many of you found yourselves in long queues as we struggled to keep up. Inevitably, once we started letting you all back in, we would run into problems again, and we could not clearly see what those problems were until we scaled everything up so high that the services stayed online and operational even though they were strained from other failures in other areas.
Sprinkled in with our deployment woes, we had a couple of genuine code problems in our services. One of them - one of the few examples where we straight up overestimated our ability to scale - was a bottleneck in how quickly we could process requests for a single town in a single region of the world. In Last Epoch, once you reach the “End of Time” town, you will always load into that town when you enter the game from character select. We knew ahead of time that this bottleneck existed, but we underestimated what would happen when we suddenly fixed a broken game and hundreds of thousands of players all tried to access the same town at the same time, in the same part of the world. We thought that the server matcher would be a little slow at first, and then it would start to fix itself as more and more people got into the game. What happened instead was that it took so long to get into the game that almost no one actually succeeded, so they quit and tried again, over and over, and the problem never tapered off. This was not the kind of problem we could fix just by adding more copies of the service, so it took some emergency problem solving.
Each time we found a problem and fixed it, we immediately saw improvement, but this allowed even more players to enter the game and play, which would uncover the next problem, and so on.
The Final Fix
By Sunday, we had managed to fix, deploy, and scale our services to the point that most of our backend was handling over 200,000 players just fine, even through flurries of retries and errors. Yet amidst all the chaos, there was still some strange behavior happening on the game servers that was causing problems. During our periods of stability, when the game was up, players were able to connect to game servers, but their connections would often time-out once they got there.
Every time a player joins a game server, the game server checks to see if the player is in a party. This is a simple operation, and in all of our testing, we saw that this check completed very quickly, even under heavy load. Yet our logs were telling us that checks for a player’s party were taking up to a minute, sometimes even longer.
Over the first four days, we made a number of changes to the party service to alleviate pressure. Each fix helped for a while, but inevitably, it always slowed down again until players could no longer join servers. On day five, with all the other backend problems solved, we were able to get a more precise look at the party errors, and the culprit was a single, innocent-looking line of code. A single line of code that was supposed to be the most efficient request in our entire party service but instead ended up consuming all of the service’s resources under heavy load, slowing the entire service to a crawl.
It took about an hour on Sunday afternoon to rearrange the party data so we could check over 200,000 players’ party memberships without bringing down the service. We deployed the fix, the game came back up, and it’s been online ever since.
Lessons Learned
This blog post is 2,000 words long, and there is still a whole lot more we could say. Internally, we have been cataloging and planning for ways we can improve, and we want to ensure that our processes moving forward include the lessons we have learned from the launch.
First, we learned the hard way that our internal tooling for deploying our services was not robust enough on launch day. Our tools were too brittle (breaking when certain services went down) and too inflexible (too many manual adjustments needed in an emergency). When the system came under strain, we couldn’t deploy our fixes quickly, and we usually had to cause additional downtime to do it. Had our deploy tooling been stronger, we could have gotten to a stable state much more quickly. Our top priority on the team right now is improving our tooling so we can effectively respond to situations like these.
Second, our services themselves could be more flexible. We had to make many changes over the course of the launch that should have been simple configuration changes but instead required a full redeploy, which turned simple fixes into long, risky operations. This weakness was identified ahead of time and has now become a top priority to improve.
Third, we need to do a better job of anticipating how player behavior affects our backend. Our testing was designed to simulate how and when our services would break, but we needed to spend more time considering how the conditions would continue to change once things started failing. Now that we’ve seen what happens during a fraught launch - how players put pressure on services differently than when everything is working - we’ll be able to incorporate that data into future tests.
(As an aside, our testing effort, in general, was a huge success. Despite how it may look from our launch struggles, our testing identified many other critical issues leading all the way up to the week before launch, and without those efforts, we might still be trying to fix the game to this day. Even though we’re post-launch, we plan to continue incorporating load testing into our regular development cadence going forward.)
Thank You
With the launch behind us, we’re all very thankful to you players for showing so much passion for the game, despite the rocky start.
EHG started from a group of gamers hoping to make the ARPG they wanted to play, and now EHG is a group of gamers hoping to make the game YOU want to play. Your passion, enthusiasm and, when deserved, criticism have continued to encourage our teams to deliver that game and push the definition of what an ARPG can be, should be, and will be. Our team could not have made Last Epoch what it is today without you, and we will endeavor to keep making the game you all deserve.
Players can no longer stun themselves. An example of this was by using the Signet of Agony node in Bone Curse
Replaced the XP Tome sound effect in Echo of a World
Flagged more prophecy rewards as "rare/valuable" (which animates them to rotate and makes them slightly larger than other stars in the Constellation)
Increased the favor cost multiplier for Glyph of Despair Prophecies
You can no longer gain experience while in the grace period (the period of invulnerability after arriving to a new area)
Added missing name in Graveyard
Overhauled terrain, spawners, and shrines in the Hidden Oasis Echo Map to both improve visuals, and performance, and fix hideable issues with palms
Overhauled visuals and added Scene Variants for Lightless Pits Echo Map
Bug Fixes
Skills & Passives
Fixed a bug where Upheaval's "Master of the Totem" didn't buff Tempest Strike Totem damage and armor
Fixed a bug where Storm Crow's "Arborist" didn't buff Tempest Strike Totem with Flat Spell / Melee Lightning Damage
Fixed a bug where Swipe's "Avatar of Stone" doesn't buff Tempest Strike Totem, Warcry Totem & Upheaval Totem with Flat Melee / Spell Damage
Fixed a bug where Storm Totem's "Fulgrite Core" wasn't providing Flat Spell Lightning damage based on character Shock Chance
Fixed a bug where Tempest Strike's "Heorot Arsenal" node was not providing stats to the Cold Projectile that Tempest Totem shoots when each Tempest has been removed in the skill tree.
Fixed a bug where Tempest Strike Totem, Warcry Totem, and Upheaval Totem were not benefiting from Spell Lightning Damage for Existing Totems (such as the Omen of Thunder Unique Item)
Fixed a bug where directly transitioning from channeling Warpath to channeling Rebuke while at negative mana would not start mana regeneration.
Fixed a bug where Fury Leap would play the landing animation in mid-air on long-range casts of Fury Leap
Fixed a bug where the Acolyte's Wraith's weapons would drift during animation transitions
Fixed a bug where Mirage hits on Puncture would not grant stacks of Bleeding Fury
Fixed an issue with Acid Flask's "Alchemist Gift" throwing animation where the trap would spin in place then teleport to its destination
Fixed a bug where Acid Flask's "Alchemist Gift" node did not have a throwing sound
Fixed a bug where Healing Hands would not get a Fire tag when taking the Searing Light, or Skyfall Nodes
Fixed a bug where the Spell Tag would be removed from Healing Hands with Seraph Blade when you also took Skyfall
Fixed a bug where Ballista's "Armed Construction" node was giving 1% increased radius per dexterity instead of its listed 1% increased area per dexterity
Visuals
Fixed a bug with the sword in the Fallen Ronin set was deforming in a weird way on the Primalist
Fixed Terrain and floating vegetation in several scenes
UI
Fixed a bug where some Game Guide pages couldn't be linked in chat
Several Localization updates
Enemies
Fixed bug where Void Despair would spawn in place for a brief second before starting its emerging animation
Fixed a bug where the Idol (big worm) could become stuck after knocking guards off their platform in Last Refuge Outskirts
Controller
Fixed a bug where advancing dialog with a controller would skip pages if there were multiple.
Fixed a bug where menu options could still be selected with a controller while they are invisible/inactive on the Death Screen. This was resulting in potentially closing the respawn menu preventing you from being able to respawn.
Other
Fixed a bug where your stats could become out of sync with the server. This could result in issues such as the client believing you had less movement speed than you did.
Fixed a bug where Prophecies could be re-rolled on login in multiplayer
Fixed a bug where you could not return to character select while in-game on an offline character
Fixed a bug where Vsync was not applying during Splash Screens (this appears before the login screen)
Fixed a bug with pickup range reliability in Multiplayer
Fixed some instances of Gates blocking paths in the Preserved Sanctuary Echo map
Fixed a bug which caused the game to freeze after switching inputs on the Skills panel
Known Issues
When exiting a transform such as Werebear Form, your stat sheet may display your mana regeneration incorrectly. This is only a display issue.
Gambler’s Fallacy and Soul Gambler’s Fallacy state they do not work with channeling skills
This was wording only and functionality has remained unchanged.
This is a change we are intending for 1.1, and the description change got through early. To be transparent, this is a change we are intending, though we are planning to go over Disintegrate at the same time providing it with buffs to compensate and stand better on its own instead of relying on this singular item interaction.
In between attempting to save the citizens of Eterra, and eradicating them, almost 70,000 of you have joined in with your voices to discuss mid-cycle balance changes. The turnout for this survey has been fantastic; and further, is in addition to the many discussions here on the forums and other platforms on the topic. We want to first thank you all for your enthusiasm on this topic driving it forward.
Today, we want to share the results of the survey, as well as the decisions which have come as a result of the feedback.
For the purpose of reading the below results, the following information can help:
Scale:
1 - Strongly Disagree
2 - Disagree
3 - I have no opinion on this topic
4 - Agree
5 - Strongly Agree
When we first started the survey, the scale was in reverse. We received immediate feedback about this, and swapped it before too many results came in. While the results below do not reflect this change, we made this change very early into survey so it had minimal impact on the results
OVERPERFORMING BUGS
With over 74% of all votes in the survey crushing the other options, as well as in written feedback, the stance from the involved community is fairly clear. We should be fixing bugs which cause skills or items to highly overperform, and as such, will be doing so. This is a change from our previous stance where we didn’t want to alter balance mid-cycle. Now, if it’s the case of a bug, we will be pushing out these fixes in mid-cycle patches.
MILDLY OVERPERFORMING BUGS
In the case of a bug resulting in a build, skill, or item mildly overperforming, there’s a much less clear stance. From written feedback, it’s a bit clear as to why: What is “mildly” overperforming? Being a bit of a vague categorization, it’s left up to an individuals interpretation.
We have decided in this case to use case-by-case discretion. This would be based on feedback we’re seeing in the community, and just how far the bug results in a power shift. So we may chose to, or not to fix bugs which are ‘mildly’ overperforming mid-cycle and will discuss them as they arise.
OVERPERFORMING BALANCE
On the other hand, if a build is overperforming, but not caused by a bug, the feedback has largely weighted towards “do not change”. While not quite as one sided as with bugs, this is still a fairly strong sentiment from the community with over 57% voting not to make these changes. This also matches our existing stance as well, in not taking too many steps to alter balance mid-cycle. As such, we’ll be avoiding balance changes which are not bug related, even if it’s resulting in a build, skill, or item highly overperforming.
MILDLY OVERPERFORMING BALANCE
As one might expect, as the power from something not bug-related becomes less impactful, the desire is even less for changes to be seen to them. Weighted quite heavily towards no changes, we agree with this stance and will not be making balance changes mid-cycle which are not bug related, and only result in the skill, build, or item mildly over-performing.
MID-CYCLE LEADERBOARD RESET
In the event that we release a change or bug-fix which was resulting in an item, skill, or build to overperform, the desire for leaderboards to reset has been quite mixed. We discussed this a fair amount, and have made the following determination: We will not reset leaderboards in this instance, however, we will instead add information to the entry to indicate when the entry occurred. The goal of this being to make the information available to identify entries which may have used a build that has since changed.
We decided against a mark or icon on the entry indicating it was an overperforming build, as we didn’t want these to appear as a “mark of shame”. We felt this was the best way to be able to allow competitive players to continue competing on the leaderboards, without taking away other player’s previous hard work on their builds, even if they were overperforming.
PARTIAL LEADERBOARD RESET
While the above answer also addresses this question, for consistency we want to show the results of all of your votes here.
NOTIFICATIONS VIA PUBLIC POSTS
To everyone’s surprise, it looks like almost everyone agrees that receiving notifications about upcoming balance altering bugfixes or changes is a very strong desire. As we’ve been showing this last week since we started getting feedback on the survey, we fully agree with this, and will start trying to provide more head’s up when these changes are coming.
Though with this, we will still reserve the right to not provide information regarding the upcoming change if: Doing so would result in players rushing to take advantage causing severe issues, or we could release the fix almost as fast as releasing the notification that the fix is coming
So for these changes, if we feel we can release the information in full about the change, we’ll do so. Otherwise, we may try to be more vague (such as with the Infernal Shade infinite damage bug) to limit its impact before the change, or we may withhold it completely if it’s something which is regularly crashing servers when it’s utilized to minimize its impact until we can get it fixed.
CONCLUSION
This round of discourse with the community has resulted in some great changes to our stances that we’re quite happy with. The two big changes here being:
We will release fixes mid-cycle for bugs which result in an item, skill, or build highly overperforming
We will add leaderboard functionality displaying which specific patch, or timespan an entry happened during.
Once again, we’d like to thank everyone for your involvement in Last Epoch, and taking the time to make your voices heard. It’s with all of your feedback we’ve made Last Epoch as great as it is, and is only by continuing to work with the community and listening to feedback that we’ll continue to improve.
Fixed a bug where you could enter a Quest Echo regardless of Stability or Quest completion state
Fixed a bug where a Lost Cache could be opened more than once in multiplayer
Fixed an issue where if multiple characters shared the same name, only the first character with that name was showing on the character selection page.
Fixed a bug where killing some Timeline Quest Bosses too quickly would result in the Quest state not progressing resulting in the Timeline Quest not successfully being completed
Fixed a bug where the benefit from Infernal Shade’s Purgatory could persist through multiple casts of Infernal Shade
Fixed an issue where the Delete prompt on the character select screen would not block clicks, allowing players to change the selected character being deleted.
Moved the online/offline switch to be behind the Delete prompt fade on the Character Selection screen to prevent changing characters while having a delete prompt up.
Fixed a bug where logging into specific characters would result in “LE-52 Lost Connection to Game Server” while other characters would connect without issue
Update - 07:47 PM CT
Fixed a resulting bug which prevented players from skipping the first two Timeline Quests in Empowered Timelines
In today’s patch we have previously mentioned skill changes, stash tab cost reductions, audio updates and more! We plan to release more information regarding the mid-cycle balance changes tomorrow. So if you’re interested in seeing the results of the survey, and our plans going forward as a result of the feedback, please keep your eyes out for that post on our forums!
Changes
Campaign
Moved Transition to Temporal Sanctum from The Ruined Coast so it’s not as easy to accidentally transition after combat.
Skills
Changed Cloud Gatherer to only apply to any individual Smoke Bomb one time.
Wandering Spirits now has 30% more spirit reveal frequency
Wandering Spirits now has a base of damage of 20 (from 16.2) and damage effectiveness of 200% (from 180% actual, 140% listed)
These are compensatory buffs that were intended to be included alongside the change in 1.0 that made Wandering Spirits always fade out when the reveal duration ends, but the buff did not make it into release. Since the initial change was a nerf and did make it into 1.0, and this compensatory buff was always planned to be paired with the change, we're adding the buff in this patch instead of waiting for the next cycle.
UI / Visual
Added “Localization” type to in-game bug reporting tool
Improved player to player trade user experience so that you can no longer request a trade which requires a higher rank than the potential buyer possesses.
Audio
Reduced the frequency of the Falcon’s CAWWWWs (attack vocal sounds)
Updated audio for Healing Hands
All chapter 6 scenes have new 2D ambient loop sfx
The Barren Aqueduct has new music
Soul Cage props in chap 6 have looping sounds again
The Barren Aqueduct and Nests of the Fallen now have sounds for the running water on the ground in the aqueduct
The large running water props in chapter 8 now have sfx
Added looping sfx to the large rusty pipelines that cross the map
Other
Reduced cost of Stash Tabs
Stash tabs beyond the first 6 previously cost 10000 more than the previous tab. Now stash tabs 7 to 16 cost 2500 more than the previous tab, and stash tabs beyond the first 16 cost 5000 more than the previous tab. This results in the cost of large numbers of stash tabs being reduced by around 50%.
Bug Fixes
Campaign
Added a failsafe to Imperial Welryn for killing the commander early or off-screen.
Fixed an issue where you could complete all Chapter 1 quests, but do not have the first Chapter 2 quest “Last Refuge”
Skills & Passives
Fixed a bug where Profane Veil’s Vampiric Pool gave 40% of the consumed minion’s maximum health as ward, instead of the listed 4%
Fixed a bug where Runemaster’s passive node Sanguine Runestones’s threshold bonus (15% of health regen applies to ward) was scaling with points allocated
Flame Whip now receives 4% increased damage per point of intelligence (this affects Flame Whip casts from all sources, and previously never received attribute scaling from any source)
Fixed a bug where the effect of Chthonic Fissure's Eradication was not doubled when the player was cursed
Gameplay
Fixed several issues with Heorot fight including Ice Spike stopping projectiles, and being frozen not stopping actions in multiplayer.
Fixed bug where minions were not benefiting from items when being respawned after leaving towns in multiplayer.
Items
Fixed a bug where casting Summon Skeletal Mage with Grave Passage allocated caused the "minions transported with traversal skills" experimental affix to not bring any minions with you
Fixed a bug where a Two-handed weapon and off-hand could be equipped at the same time
Fixed a bug where Circle of Fortune Prophecy Lenses could be socketed into locked sockets with Shift + RMB
Fixed bug where Wraithlord would try to consume other player’s minions
Fixed bug where Spine of Malatros Flame Whips were not receiving some scaling
Fixed a bug where Stygian Coal's more Stygian Beam Damage per 10 current mana affix did not work
Fixed a bug where Stygian Coal's Stygian Beams were not affected by Drain Life's Horrify, Condemnation, Unholy Mass, Stupefy, Soul Blast, and Ravenous nodes
Fixed a bug where Chronicle of the Damned's chance to reveal a Wandering Spirit on kill would cause the player's existing cast of Wandering Spirits to stop releasing spirits
Fixed a bug where the Wandering Spirit from Chronicle of the Damned's chance to reveal a Wandering Spirit on kill always instantly faded away
Fixed a bug where items influenced by the Rank 8 passive from Circle of Fortune would not have the Circle of Fortune tag
They still have the "cannot be traded" tag
Fixed a bug where Flame Whips did not benefit from Chthonic Fissure's Eradication when using Spine of Malatros
Fixed a bug where Chthonic Fissure's Grasp of the Undying did not apply to Flame Whip when using Spine of Malatros
Fixed a bug where only the "while cursed" benefit of Chthonic Fissure's Death From Below applied to Flame Whip when using Spine of Malatros
Fixed a bug where Chthonic Fissure's Chronicles of Ruin did not apply to Flame Whip when using Spine of Malatros
UI / Visual
Fixed a bug where right clicking a dungeon key upon first entering game would not open the map
Fixed a bug where campaign prophecies could still appear while blocked
Fixed a bug where enemies could appear invisible while playing in a party
Fixed a bug where the gate in Soul Warden’s Road wouldn’t animate going down.
Fixed a bug where The Mountain Beneath would walk through terrain in The Sheltered Wood
Fixed bug where item tooltips could disappear when loot dropped
Fixed some instances of players facing backwards after a scene transition
Please continue to report any instances of this issue via the in-game bug reporter
Audio
Fixed a bug where mousing over a vendor inventory then back to your inventory it would play the “item bought” sound effect
Upcoming Changes
We will be releasing a bugfix for Infernal Shade in a hotfix later this week
As we continue our mission of collaboration with the community, we wanted to reach out and get as much feedback as we can on the topic of Mid-Cycle balance. In years past we have reached out to the community via a survey, and we found the feedback very valuable. Today, we are hoping to do the same once again.
Previously, our decision on the topic of Mid-Cycle balance has been to avoid adjustments to skills and items that are overperforming but are not bugs and to avoid fixing bugs that result in those skills becoming significantly weaker. The exceptions here are bugs that cause server stability issues.
To be clear, this small survey only focuses on bug fixes or balance changes that apply to overperforming skills or items. We will continue to fix bugs that result in skills and/or items receiving a buff. Things like server stability, Item Factions, or similar issues are not a part of this survey.
We know that the conversation can be more nuanced than your typical agree, disagree, no opinion poll, but we also want to get the sentiment of the community at large. Please take a few minutes (it’s only seven questions) and let us know your thoughts.
Today’s patch is centered around 2 specific hotfixes.
BUG FIXES
Fixed a bug that was causing players that die during a Dungeon run to transition and immediately disconnect from the game.
Fixed a bug where clicking on the transition object after Fire Lich Cremorus in Soulfire Bastion Dungeon was not correctly triggering the teleport to the Soul Gambler area.