V0.3.5 (Plus)

## V0.3.5

**Version 0.3.5** is the fourteenth update patch for *Baldi's Basics Plus*. It was released on May 7, 2022. Along with V0.3.6, this update was not available on macOS due to the game freezing issue. The macOS version was temporarily available for a short time on itch.io before it was removed.

## Documented changes

### Adjustments

* Added support for the Steamworks API. When played on Steam, the following features are enabled:
	+ Full Steam Input support.
	+ The game automatically pauses when the Steam overlay is opened.
	+ An achievement system has been implemented, but the game will not receive any achievements until V1.0.
	+ A new file button appears if the game is being played on Steam Deck or in Big Picture mode. This will open an on-screen keyboard allowing the player to enter its name with a controller.
	+ Clicking on the seed button to enable a custom seed will open an on-screen keyboard on Steam Deck or while the game is running in Steam Big Picture mode.
* Added rumble support. If enabled, the controller will rumble when Baldi is nearby and when being caught by Baldi. If the controller being used has two individually controlled rumble motors, the side of the controller that corresponds with the direction Baldi is in relative to the player will rumble more than the other.
* Added a visual effect when getting caught by Baldi, similar to the one in *Baldi's Basics Classic*.
* Added a slam effect for when 1st Prize is stopped while traveling at high speeds. This sound will get Baldi's attention.
* Once all notebooks have been collected, Math Machines re-light for bonus questions. Answering bonus questions will reward the player with YTPs.
* Added screen transition effects. When moving between menus, a dithering transition is used.
* Added instructions and a jump rope counter that appears on screen when playing jump rope.
* All menu screens now use the in-game cursor. The OS cursor of the computer is no longer used for anything in the game, except for the control mapper.
* All menu screens (And other UI based screens, such as the field trips) now render to a 480x360 render texture, which is then displayed on screen. This ensures all GUI elements remain pixel perfect.
	+ This screen uses a shader that can filter the pixels so that they appear square, even on non-integer scaled resolutions, with minimal blurring. This eliminates some strange effects where pixels may appear to be different sizes on some displays. This filter is optional, but it's recommended to leave it on for the best appearance.
* Created a brand new options menu that is compatible with the in-game mouse and features more settings. Changes/additions include:
	+ Divided settings into multiple pages.
	+ Settings now have tooltips with more info on what each setting is for.
	+ Added a rumble toggle.
	+ Added a reduce flashing toggle (Currently does not do much as *Baldi's Basics Plus* does not have much flashing at the moment).
	+ Added a vsync toggle.
	+ Added a pixel filtering toggle for the improved GUI rendering.
	+ Separate sensitivity settings for mouse and controller sensitivity, and for the in-game cursor and turning speeds.
	+ Added buttons to delete a file (The erase toggle on the name select screen has been removed), to reset endless mode high scores, and to reset field trip high scores.
	+ Replaced all sliders with segmented adjustment bar menus.
	+ Improved the design of the Rewired control mapper.
	+ Added a button to access the Steam Input control mapper if Steam Input is active.
* Cleaned up the pause menu and added a quit confirmation screen.
* Updated most menu text to use text from the localization file.
* All tiles (The wall, floor, and ceiling cubes that levels are made out of) now use a single mesh, instead of a bunch of quads as before. These meshes are textured with texture atlases generated at runtime. The reduced mesh count, along with some other adjustments, has drastically reduced the number of draw calls per-frame (Dropping from a few thousand to a few hundred) and improved performance quite a bit.
* This new tile setup required a new system for windows. Windows are now generated similarly to doors, with their own quad and game object, rather than simply being a transparent poster for a wall.
* Sprite billboarding is now handled via shaders instead of a script (With a few exceptions). This has also improved performance a little bit.
* Moved credits to the about screen. The game now closes after clicking the exit button without any further player input.
* Volume settings now use Unity's Audio Mixer system to control the volume of different types of sound effects.
* Some sounds now have custom volume multipliers. This is used to make several sounds that were too loud before quieter.
* Improved randomness of color glitching shader effects (Currently only used in the current end sequence, but will see more use later).
* Adjusted `TextMeshPro` assets so that the fonts are spaced better.
* Gameplay HUD elements will now scale such that they remain pixel-perfect no matter the resolution.
* Gave the stamina meter (Staminometer) a proper design.
* Created a custom dithering effect for shaders. This new method seems to be compatible on everything, including macOS (Which the old one did not play nice with), so now the same shader is used on all platforms and fog dithering is available on macOS.
* NPCs now exist in their own layer in order to improve collision. Mainly, NPCs should no longer get in the way of the player trying to click on objects.
* Posters with text now generate text at runtime, rather than having text baked into the texture. Poster text is now controlled by the currently loaded localization file. This change was made to make localizing the game into other languages easier.
	+ As a result of this change, some posters have had their designs tweaked.
* Game save data and most options are now stored in separate files. This is in order to prepare for Steam Cloud save support, which will be implemented at a later date. Some settings, such as resolution settings, will not be synced on the cloud since they will probably not be the same across different devices.
* Removed *Baldi's Basics Classic Remastered* exclusive code that was left in the previous version.
* Optimized the class NPCs use to "see" the player so that it no longer generates garbage.
* Made it possible for sounds to contain multiple captions. This is used to prevent longer audio clips from having too much text for one caption being displayed at once.
* Reworked how NPCs detect being looked at by the player. It is now much more consistent than it used to be.
* Reworked Arts and Crafters' behavior to be more manageable, and more similar to how it was in *Baldi's Basics Classic*. He will now run away if he sees the player for a short amount of time, whether the player is looking at him or not.
	+ What counts as looking at Arts and Crafters is now a bit more generous.
* Arts and Crafters is now hidden when he spawns so that he cannot be found in strange locations before being triggered to appear somewhere.
* WD-NoSquee has always worked such that, once used on a door, that door can be opened four times before the effect wears off, whether it is opened by the player or by an NPC. Now, WD-NoSquee is only used up when the player opens the door, not when NPCs open it.
* Textures and sprites now have their contrast slightly increased as lights get darker.
* Mrs. Pomp now pauses the environment and NPCs when grabbing the player to tell them about her class.
* Mrs. Pomp now drags the player further into her class room before letting go and locking the doors.
* Reduced the possible time range for the Gravity Chaos event.
* Implemented a new detour system for NPCs when they target the player. During Gravity Chaos, this system is used to direct most NPCs to gravity flippers if their current orientation is opposite the player's. This prevents NPCs from annoyingly trying, but failing, to collide with the player over and over again during the event.
* Reworked The Test's speed increase method. It now will increase to a new pre-determined value each time the player looks away from The Test while in his sight. After a certain number of times doing this, The Test will instantly travel to the player's position when looked away from.
* Level loading will now only begin when the elevator screen door is closed. With this change, the player can no longer see the level begin to load when starting a new game or beating/losing a level.
* The name entry screen has been moved to the same scene as the main menu, allowing for a smoother transition between the two.
* Improved 1st Prize's method of grabbing the player, which should be a bit smoother than before.
* Removed the jump button. Jump rope now uses the action button for jumping.
* Tweaks to the default control map.
* Updated info on the About page.
* Principal of the Thing will now only spawn in his office.

### Bug fixes

* Fixed a minor error in Playtime's animation.
* Set sprite shaders to the Unlit Sprite material setting. This has fixed some odd issues with certain sprites.
* Fixed the game loading incorrect window and resolution settings on startup.
* Fixed issues with the skybox rendering weird from certain angles.

* Fog now properly renders on the skybox.
* Fixed a bug that caused deleted files to not actually be deleted (They would only be removed from the in-game list of names, but the actual file would remain).
* Fixed a lighting calculation issue.
* Fixed flipping upside down not also flipping audio and captions.
* Fixed an issue where the Dangerous Teleporter and whirlpools could spawn the player in game breaking positions.
* Fixed an issue where Arts and Crafters could collide with the player during Gravity Chaos while oriented opposite the player.
* Fixed a bug that would softlock the game if Mrs. Pomp caught the player to tell them to be at her class while in her classroom.
* Fixed whirlpool triggers being able to interfere with clicking on objects.
* Fixed Grappling Hook being able to pass through roto-halls.
* Made the frequency at which the funny sound in Johnny's Store plays framerate independent.
* Fixed NPCs, whirlpools, and gravity flippers being able to spawn in off-limits areas like elevators.
* Fixed for being visible on the map screen.
* Fixed elevator screen sometimes being visible for a frame at its normal scale before playing the zoom animation.
* Fixed a bug that would cause the level generator to crash if it could not find a valid place to put an elevator on the side of the level it initially chose to put it on. Now, if no valid location is found, it will try other sides until a valid location is found.

## Undocumented changes

* Authentic Mode was added in the game, but it was only playable with extra settings.
* The Portal Poster cannot be used on windows because of the new way to generate them.
* Beans' "*Hooka, a-chew, I'mma chewin' mah gum. Booka, a-too, it's tons o' fum... Er, fun!*" is one of the captions that "Made it possible for sounds to contain multiple captions" change was applied.
* "A certain number of times" of looked away from The Test in the development log is 9 times for the first time and 7 times after he respawns.
* Elevator no longer spawns in the playground.

## Trivia

* mystman12 tried to fix skyboxes being blurry on Linux in this update.
	+ There is another bug with Arts and Crafters that was not fixed in this version, although it was mentioned in the changelog. Arts and Crafters can still teleport somewhere while chasing the player.

## References

1. ↑ "*MacOS users, unfortunately I'm encountering a pretty bad freezing issue with the MacOS build. I haven't been able to fix it or even diagnose it. It's... Weird, to say the least. I'll try to get to the bottom of it soon, but for now I've decided to delay it until I find a fix.*" - Steam
2. ↑ "*After receiving a few other reports of the MacOS version crashing for other users across different Mac hardware, I've decided to remove the 0.3.5 build for now since it seems it is definitely unstable. Will keep everyone posted on when the MacOS version is back up and running!*" - itch.io
3. ↑ "*~~Fixed skyboxes being blurry on Linux.~~*" - itch.io changelog
4. ↑ "*Fixed an issue where Arts and Crafters would try to run from the player while chasing them or trying to teleport them.*" - itch.io changelog