The Outer Worlds players will be familiar with a rather annoying bug that the developers have aptly titled “the game thinks my companions are dead.” The bug, which has been spoiling the experience for some players since launch, marks companion quests as “failed” because the game registers players’ companions as dead even though they’re alive.
Although the bug was finally fixed last week, Obsidian Entertainment’s QA Lead, Taylor Swope, took to Twitter to pen a lengthy thread explaining why it took months to investigate the bug. Swope said that he spent more time investigating the dead companion issue than any other bug in his entire career. The QA team made many attempts to reproduce the bug but it couldn’t, leading to Swope having to locate “every script and line of code that could possibly make the game think that a companion was dead” because no one could pinpoint exactly when the problem occurred.
Part of the thread reads:
The only logical culprit was a bit of scripting that runs when a companion’s health reaches zero: if they’re in the party, it waits for combat to end and revives them; otherwise it marks them as dead ‘for real.’ The only place in the game when a companion is present but *not* in the active party is when the player is on their ship The problem is, when companions are on the ship, they are undamageable.
Eventually we figured out that ‘undamageable’ does not mean ‘invulnerable’ — they can’t take damage from attacks but can still get hurt from other things One of those things: falling a great distance. The problem with *that* is that there are no spots in the player’s ship that are high enough to result in a lethal fall. So now we had to figure out how companions were mysteriously ending up way above the level.
Eventually, an offhand comment in one user’s review mentioned seeing a weird bug where a companion was “climbing nothing”, and this comment led me to figuring the whole thing out. On the dev side of things, the system for NPCs interacting with the environment is called “furniture” Sometimes this is literal furniture, like sitting in a chair, but it covers everything from using a terminal to leaning on a wall. Somewhere deep in the complex beast that is the furniture system, we had code that disabled all NPCs from starting new furniture interactions if the player was in a conversation. The problem was that using a ladder is considered *two* different furniture interactions: one for getting on the ladder and starting to climb, and one to stop climbing and get off.
So this is what ended up happening:
So, if someone started climbing a ladder and the player entered a conversation before they stopped, they wouldn’t be able to exit the ladder, and, well…. (18/18) pic.twitter.com/xcduTy4d12
— Taylor Swope (@_taylorswope) December 12, 2019
Make sure to check out the full thread on Twitter. It’s a good read for those who assume QA folks are just a lazy bunch.
For more on The Outer Worlds, check out our hub.