Once again, Roblox flipped on FFlags that completely broke my game. I have almost been forced to close it where I am losing players and halting community operations and now I have to rework that item because Roblox decided, in their infinite wisdom, not to provide us a notice or backup for our camera work. The update was pulled back for fixes, but it was then turned right back on without handling communication on this update better.
An update in the PlayerModule caused certain calls to BaseCamera to fail immediately when called due to an assertion that checks for the UserCameraInputRefactor FFlag being enabled: if said FFlag is enabled, any calls to the function fail. As you can tell from this report, that FFlag was enabled and so now calls to various BaseCamera functions now immediately fail. The same error encountered was that I had 18 days ago, picture:
This issue has been plaguing my game, Area - 14, since the morning hours when the flag was turned back on, 100% of the time when attempting to play. A co-developer was able to salvage the situation by making a patch which passes/ignores the assertion, however there is the possibility that the assert is there to protect unintended behaviour while using those functions and I don’t know to what extent that means. There is still no excuse for the lack of notice of a breaking update.
There has been zero, or poor communication, that such a game breaking update would be coming. Really. My camera doesn’t work anymore simply because I use a function of the CameraModule which is part of the exposed API. There was never any word that we were not intended to directly call modules so that we can better work with cameras and controls, or that an API change would come that completely destroys the ability to use methods of the module.
I vouch for Colbert, this needs to be addressed urgently - this could ruin many players experience and ruin player / developer relationships. This should have been talked about, as already said as this was so ground-breaking for this game, and I presume many others.
My firearm’s camera script currently uses BaseCamera and ClassicCamera to modify the camera for new states while having one equipped.
From BaseCamera, the firearm camera module takes hold of OnMousePanButtonReleased and UpdateMouseBehavior by updating them with new functions (if those were present in the original camera). From ClassicCamera, as pictured above, CalculateNewLookVector is used which fails when the FFlag is enabled.
For reference’s sake (since it’s only CalculateNewLookVector so far that has actively appeared in the console), we are also using the following methods: