tl;dr: 9 times out of 10 a game-breaking bug isn't fixed but is merely prevented. There is a difference. Please hit ToS as hard as you can going in, especially concerning forced frames and quest pop-ups, because chances are it hasn't been fixed but simply sidestepped.
I used to work in a sweatshop QA and this is a story from that time. There is a lesson here… and it applies to ToS, as well as any game. Specifics must be omitted but you’ll get the gist.
I had a project that was basically an annual title. Our company integrated their own built-in messenger services for ease-of-access for our users during online play.
It was a known legacy bug that the messenger itself, migrated from project to project, didn’t handle special characters well. During the start of every alpha we would see a full-blown keyboard system with everything you could ask for. Special stars, tildes, letters with all kinds of accent symbols, you name it.
By the end of every beta we would be left with a skeleton of that keyboard, with nearly every special character stripped from its place.
This was because spamming a chat message with nothing but special characters would crash the lobby. The next build this would be “fixed” but you would find that sending a private message with all special characters would still crash the recipient. Then that would be fixed. Except if you were in-game and received the message then you would crash. The build after, when everything seems fixed, you would find that filling the chat with anything you want but then adding a special character at the end of the message would still crash.
The list goes on forever. The fix? Remove all special characters from the keyboard. There. You can’t type them. Problem solved.
Fast-forward to early beta. Oh… if you plug in a USB keyboard you can still access some of those characters that crash the client. Okay, they “fix” that next. Starting to see a trend?
The issue was that special characters could lead to crashes but rather than actually fix the code relating to why the crash occurs, the simpler means was to just prevent the user from accessing them in the first place. If you find all possible ways the user can cause the bug then, in effect, it’s fixed… right?
Wrong. There will almost always be a way to cause that same issue if you really sit down and put your head to it.
One of the projects I was on… lol… it was the very last beta build. We thought we had it. We passed and cleared all of our required paperwork to sign off on the title for Microsoft and Sony. Half the studio was celebrating with pizza and tournaments to see who the best players were in-house. Until I found that if you entered in a dollar sign, backspaced to delete the dollar sign, and then entered a certain sequence of characters that… wait, what? It called up strings from the game? Really?
Yeah, the chat could still treat the $ as listing the associated string, in chat, with often humorous results. I stumbled upon it when clearing my message. If I could then someone else could too I imagined.
Sometimes it would list a place, sometimes it would list an item… people got quiet. The entire studio started messing around with the strings in-chat but nothing too bad happened. It was a “C” issue, not severe, not legal, not a violation, nothing. People gave up up on it, wiped the sweat from their brows, and continued the celebration.
Then I was able to squeeze out a standards violation to make it more likely to be fixed because one of the strings was tied to a Microsoft branding that, when referenced on a Sony platform, was a big no-no.
It was marked Known Shippable, meaning, it was never likely to be found because of the severe steps required. Specifically because even if someone found the string bug by mistake later on it wouldn’t really be likely at all that they would know how to reproduce the issue much-less know the exact string reference for the standards violation, or even know it was a violation in the first place.
I pressured it though. So did the studio. Over ten hours later… guess what? One of the strings… had special characters.
Boom.
With that long-winded and roundabout way to finally get special characters back into a message, it was all over. We could crash players in-game, we could crash players sitting in a lobby, hell, we could crash every single player in every single lobby. Regardless of how nearly impossible it would be for a user to find, the bug existed, and having the entire studio know of that existence increased the likelihood of it being leaked. Even one single reproduction in the real world would have been disastrous.
And I guarantee you that too this day that issue wasn’t actually fixed. All they did is stop the user from being able to display strings in-game and shipped the title.
But, the root of the problem, the special characters, was left to haunt the code forever more.
OoooOOoOOOOOoooooo. Spooky.
So, happy fun-time story yeah? The lesson is that bugs very rarely actually get properly addressed. They just get covered up and become harder to reach. I found it is always very important to treat every game like that since my stay at that company.
Our time in iCBT2 was riddled with issues that could stem into even more severe issues. We played around with font sizes and inserting graphics into chat. Some users found how to insert non-github graphics into chat even.
What happens if you push that image as a png with js injection into chat? What happens if, instead of just inserting quest dialog, we are able to complete quests from chat in specific instances?
I ask that all founders hit those iCBT2 frames as hard as they can. I hear this issue has been addressed for KToS… but… I’m not buying it. If a user can bring up even one single window when they shouldn’t normally be able to then the issue will not have been fixed but simply walled-over. i.e. the game-breaking instances were prevented from being brought up but the underlying issue of being able to bring up windows in the first place would still exist. If a user is able to pull anything directly from code (like github files etc) then there is a big issue there just waiting to happen.
A scratch can kill you if it gets infected and is left untreated.

