V0.4 (Plus)

Version 0.4 is the eighteenth update patch and third major update for Baldi's Basics Plus, released on February 26, 2024 at 10:00 AM on Eastern Standard Time, and Kickstarter backers who purchased the $30 "Let's Play!" pledge and up have access to a pre-release of this version.
== Documented changes ==
* Added Dr. Reflex.
* Added the squished status effect. When the player is squished, they cannot interact with most objects in a level. When an NPC is squished, they cannot trigger their usual effects when colliding with other entities.
* Ambience was added to playground and outdoor area.
* Several custom made rooms have been added to the game for the new level generator changes.
* Pre-made hallway areas can now be loaded into levels alongside the standard generated hallways. This allows for more interesting level layouts.
* Added a callout when all notebooks are collected notifying the player that they now must exit the level.
* Added a button to the about screen that opens the game's save folder.
* Added a new door texture for the Principal's office.
* Added several new objects for level décor: A computer, filing cabinets, bookshelves and a new desk.
* Added an echo audio effect when entering the library.
* Tweaked Principal of the Thing.
** The Principal now knocks on faculty room doors a few seconds before entering them.
** The Principal will now quickly open and close the Principal's office doors during detention when entering or leaving the room, instead of just passing through them.
** Individual rule breaks now have their own timing for how long the Principal must see the player before he will get angry at them.
* Tweaked Beans.
** Added previously unused sound effects for when Beans is about to spit gum, when the gum is moving through the air, and when it hits an object.
** The gum overlay is now rendered behind other HUD elements.
** Beans' now runs away from his gum once it hits something.
* Tweaked Playtime.
** Playtime will end jump rope if she loses sight of the player at any point.
** Playtime no longer ends jump rope based on the player moving a certain distance. This functionality was made obsolete by the above change since moving far enough away causes Playtime to lose sight of the player.
* Tweaked It's a Bully.
** The Bully no longer drops below the level when he leaves. Instead, the relevant components are simply disabled.
** NPCs are now blocked by the Bully and must navigate around him.
** The Bully now pushes entities that collide with him away instead of just being an impassible collider. This means it is now possible to pass through the Bully with enough speed.
* Tweaked Chalkles.
** Chalkles no longer instantly cools down when leaving a room. Instead, he cools down over time the player is not in any of its rooms.
** Chalkles can now spawn in faculty rooms, though a smaller percentage of them than class rooms.
* Sound is now propagated through levels by wrapping around walls, rather than just passing through everything. For example, if they are in a room with only one entrance, all sounds they hear will sound as if they are coming through the door, regardless of where the character is relative to them.
* The shape, size and contents of rooms are no longer procedurally generated. All rooms are now designed by hand and then loaded into levels procedurally. This allows for more interesting, better designed rooms to be added to the game.
** Some objects in rooms can be randomized such that there is a chance they will be replaced by another object (E.g. BSODA machines in the cafeteria have a chance to be changed to a Zesty machine or, rarely, a crazy vending machine).
* Baldi's Math Machines are now placed closer to the walls so that players cannot hide behind them.
* Made improvements to the map.
** Tiles are now filled in with a transparent background to make it easier to tell the difference between actual rooms and empty space.
** Changed room colors to better reflect the danger level of each room type (Class rooms are green, faculty rooms are red, etc.).
** Added icons to the background of rooms when viewing the advanced map to make it more obvious what kind of room it is and improve color blindness accessibility.
** Doors now have proper icons on the map which show if a door is locked or not.
** Windows also have a proper indicator on the map.
** Map icons for things like items and notebooks now stay right-side-up no matter how the map is oriented.
** Elevators are now indicated on the map with an up arrow. This turns green when open and becomes a red "X" when the elevator is locked.
* The library no longer generates as a maze, and is instead a premade room like the others.
* The backer credits have been completely reworked with several improvements. 
** Names are now sorted alphabetically to make it easier to find a specific name.
** Backer credits are now displayed with a pixelized font like text in the rest of the game.
** The way credits are loaded has been changed to make it easier to add or change names.
* Math Machine balloons now drop down a little when they can be interacted.
* Adjusted the way items are placed in levels.
* The Energy Flavored Zesty Bar now makes a crunching sound when used.
* Changed the BSODA sprite to something more in-line with the game's current graphical standard and that can be seen through so it does not block the player's view.
** The BSODA sprite is also randomly rotated when spawned.
* BSODA can now push the player, but only if they re-enter the trigger after exiting it.
* The alarm clock is now an entity and can be moved by outside forces.
* "A-Tisket, A-Tasket" and "Hayride Too I Don't Even Care" are now categorized as sound effects and will not have their volume adjusted by the music volume setting.
* Several NPCs now unlock locked doors when they pass through them. These NPCs include Baldi, Principal of the Thing, and Mrs. Pomp.
* The tape player/pay phone now causes all NPCs to flee from it (Unless they are aggroed) alongside its old behavior of preventing sounds from being heard while it is playing.
* The flood waters during the flood event can now be seen from underneath. When the camera is underneath, there is also an underwater visual effect that limits how far seeing. The player cannot be seen by NPCs while underwater.
* Increased the launch and initial pull speeds of the Grappling Hook.
* Improved the appearance of the mystery room.
* Improved the placement of buttons in levels.
* The merry-go-round can now be walked on and it will spin any entities that are on it.
* Increased the speed of the roto-hall, and made it spin in the direction that will get it to the next valid position the fastest.
* Conveyor belts now only generate on Floor 3.
* Safety Scissors now work against multiple things at once. Using them while playing jump rope and covered in gum will clear both for example.
* Created a new entities system used by nearly all moving objects with collision.
** All entities except for the player use a custom made collision detection system when calculating movement.
** One new feature of this system is the ability to apply a force with frame rate independent acceleration to entities. This is useful for applying quick bursts of movement to entities, such as with the Bully's new pushing mechanic.
** Physics updates are now called manually in order to work with the new entity system.
* Converted all NPCs and NPC navigation to a new state machine system.
** The NPC state machine allows to more easily program and bug fix complex behaviors.
** The navigation state machine allows for more dynamic NPC behavior when conditions that alter how an NPC should behave are present (E.g. the party at the Principal's office event).
* Created a custom occlusion culling system that prevents most areas that cannot be seen at any given moment and the objects in those areas from being rendered. This significantly improves performance and ensures it remains consistent, especially on larger levels.
** This system is capable of re-calculating occlusion data during gameplay, so changes to the level layout (E.g. using a Portal Poster) will be respected by the culling system.
* Completely reworked the way level layout data is managed. "Cells" are now used to hold navigation and other important data, "tiles" are now just the 3D models the levels are made of. Previously cell data was tied to the tile objects. These improvements paved the way for faster level generation and loading as well as properly enabling the level layout to be changed during gameplay.
* Improvements to the way cell navigation data is checked when pathfinding.
* NPCs can now navigate through out of bounds areas if they somehow end up in them. They will try to navigate back in bounds if this happens.
* Changes made to level generator allowing for the new pre-made room system to work.
* Level loading is no longer based on the frame rate. Now, the level loader/generator will do as much as it can in a single frame before yielding to let the next fame begin. This allows levels to load much more quickly while still keeping the game responsive.
* Created a new room function system which allows to easily add and change functionality for specific rooms (For example, to trigger the silence effect when entering the library or ambient noise when in certain rooms). This new system is based on player position, rather than colliding with a trigger as it worked previously.
** This new system also opens the possibility to affect NPCs and/or entities as well as players.
* Improvements to door placement.
* Improvements to room distribution.
* Improvements to the system which prevents objects from generating on top of other objects.
* The level generator will now reuse matching room texture atlases instead of generating several identical room texture atlases. This improves load times and reduces memory usage.
* Implemented a Dijkstra map manager that is used for things like sound propagation, getting NPCs to flee locations, level generation, etc.
* Disabled macOS auto graphics API and added OpenGLCore as a supported graphics API.
* The game's resolution can no longer be set to a width below 480 and/or a height below 360.
* Fixed NPCs occasionally clipping through objects when navigating through open areas.
* Fixed Steam Input not switching to the "Interface" action set when finishing a round of endless mode.
* Fixed being able to get teleported into parts of rooms that cannot be escaped by assigning designated safe spawn locations to rooms.
* Fixed whirlpools being able to spawn in unreachable areas.
* Fixed the floodwaters running at half the frame rate when they were rising at the beginning of the flood event.
* Fixed being able to endlessly scroll the credits past the beginning.
* Made several improvements to NPC navigation to prevent them from turning around in certain situations when it makes no sense to do so (For example, sometimes NPCs chasing the player would see them enter a room, walk up to the door, and then immediately turn around instead of entering the room).
* Fixed Gotta Sweep occasionally not returning to his closet when done sweeping.
* Fixed a bug that caused Baldi to not move quite right when being slowed down or sped up by an outside force.
* Fixed a divide by zero error that could occur in some scenarios with characters like Gotta Sweep. This issue may have been responsible for some strange game freezing bugs reported by some users.
* Fixed some billboarded sprites updating their rotation with a one-frame delay.
* Fixed a bug that caused doors to play opening and closing sounds twice at the exact same time.
* Fixed issues with Arts and Crafters' attack animation.
* Fixed lockdown doors z-fighting with the skybox.
* Fixed Baldi being able to collide with the player through walls.
* Made improvements to level generation that should better prevent areas the player can get permanently trapped in from generating.
* The roto-hall will spin entities inside of it while it rotates. This prevents being able to clip inside of it, getting stuck.
* Fixed the controller vibrating when inside the library.
* Fixed a bug that made it hard if not impossible to use Safety Scissors on 1st Prize while being pushed. It will now cut his wires while being pushed, even if not facing him.
* Fixed multi-angle sprites, such as those used by 1st Prize and The Test, rotating the wrong way when upside down.
* Removed the farm field trip until further notice as it is currently broken.
* Removed several unused and obsolete scripts/assets.
=== Pre-release Changes ===
* Decreased the starting pitch of Dr. Reflex saying "Thiiiiiink... FAST!"
* Decreased the volume of Arts and Crafters' sounds.
=== Pre-release Bug Fixes ===
* Fixed Dr. Reflex continuing to say "Thiii..." even after losing the player.
* Fixed An Apple for Baldi not getting knocked down from trees with the Grappling Hook.
* Fixed the Bully not being seeable by the Principal.
* Fixed audio, like Baldi's "You found all notebooks!" notification, continuing to play when loading a level.
* Fixed the elevator screen being displayed when visiting what's left of the farm.
* Fixed Portal Posters not allowing sound through.
* Fixed NPCs not re-routing when placing a Portal Poster that opens a shorter path to their destination.
* Fixed Dr. Reflex entering an endless "Thiii..." loop if the party event started while he was chasing the player.
* Fixed conveyor belts, Cloudy Copter's wind, whirlpools and Gotta Sweep only moving the player and NPCs. They will now affect all entities accordingly.
* Fixed Arts and Crafters' audio frequently cutting out during his attack animation.
* Fixed Mrs. Pomp stomping rapidly for several frames when she spawns.
* Fixed non-grounded entities not flipping upside down properly when squished.
* Fixed plants generating inside lockers.
* Fixed the counter and examination table in Dr. Reflex's clinic not carving the , allowing NPCs to walk through them.
* Fixed Beans wandering weirdly in open areas when switching between walking and running.
== Undocumented changes ==
* The player can only pick up regular notebooks without Baldi's Math Machine on floor 1.
* The price for several items significantly increased:
** BSODA - YTP price increased from 100 to 150.
** Energy Flavored Zesty Bar - YTP price increased from 50 to 125.
** Swinging Door Lock - YTP price increased from 100 to 125.
** Alarm Clock - YTP price increased from 50 to 100.
** Principal's Keys - YTP price increased from 50 to 75.
** WD-NoSquee - YTP price increased from 75 to 100.
** Dangerous Teleporter - YTP price increased from 100 to 250.
** Portal Poster - YTP price increased from 150 to 250.
** Baldi's Least Favorite Tape - YTP price increased from 50 to 100.
** An Apple for Baldi - YTP price increased from 250 to 400.
* If the player enters a field trip at the same time they get sucked into a whirlpool, they will be stuck underneath the floor unable to move upon returning from the field trip.
* Pre-generated levels still use the old textures for the door to the Principal's office.
* Pre-generated levels still use white color for the playground, Gotta Sweep's closet and the mystery room in the map.
* Sometimes, computers in faculty rooms are sideways. It appears on floor 3.
* Number balloons got glitched though the walls (no-clips) even it appear on HUD.
* When the player enters a camping field trip while getting squished by Dr. Reflex, the player no-clips though the floor after completing it.
== Trivia ==
* This is the third Baldi's Basics Plus update to add a new character, the first being V0.1 (The Test), and the second being V0.2 (Johnny).
== Navigation ==
Category:Versions
Category:Versions (Plus)